diff --git a/stage0/src/Lean/Meta/Match/CaseArraySizes.lean b/stage0/src/Lean/Meta/Match/CaseArraySizes.lean index 53d51c2145..3af1f7294e 100644 --- a/stage0/src/Lean/Meta/Match/CaseArraySizes.lean +++ b/stage0/src/Lean/Meta/Match/CaseArraySizes.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2020 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -6,8 +7,7 @@ Authors: Leonardo de Moura import Lean.Meta.Tactic.Assert import Lean.Meta.Match.CaseValues -namespace Lean -namespace Meta +namespace Lean.Meta structure CaseArraySizesSubgoal := (mvarId : MVarId) @@ -19,41 +19,38 @@ instance CaseArraySizesSubgoal.inhabited : Inhabited CaseArraySizesSubgoal := ⟨{ mvarId := arbitrary _ }⟩ def getArrayArgType (a : Expr) : MetaM Expr := do -aType ← inferType a; -aType ← whnfD aType; -unless (aType.isAppOfArity `Array 1) $ - throwError ("array expected" ++ indentExpr a); +let aType ← inferType a +let aType ← whnfD aType +unless aType.isAppOfArity `Array 1 do + throwError! "array expected{indentExpr a}" pure aType.appArg! private def mkArrayGetLit (a : Expr) (i : Nat) (n : Nat) (h : Expr) : MetaM Expr := do -lt ← mkLt (mkNatLit i) (mkNatLit n); -ltPrf ← mkDecideProof lt; +let lt ← mkLt (mkNatLit i) (mkNatLit n) +let ltPrf ← mkDecideProof lt mkAppM `Array.getLit #[a, mkNatLit i, h, ltPrf] -private partial def introArrayLitAux (mvarId : MVarId) (α : Expr) (a : Expr) (n : Nat) (xNamePrefix : Name) (aSizeEqN : Expr) - : Nat → Array Expr → Array Expr → MetaM (Expr × Array Expr) -| i, xs, args => - if i < n then do - withLocalDeclD (xNamePrefix.appendIndexAfter (i+1)) α fun xi => do - let xs := xs.push xi; - ai ← mkArrayGetLit a i n aSizeEqN; - let args := args.push ai; - introArrayLitAux (i+1) xs args - else do - xsLit ← mkArrayLit α xs.toList; - aEqXsLit ← mkEq a xsLit; - aEqLitPrf ← mkAppM `Array.toArrayLitEq #[a, mkNatLit n, aSizeEqN]; - withLocalDeclD `hEqALit aEqXsLit fun heq => do - target ← getMVarType mvarId; - newTarget ← mkForallFVars (xs.push heq) target; - pure (newTarget, args.push aEqLitPrf) - private partial def introArrayLit (mvarId : MVarId) (a : Expr) (n : Nat) (xNamePrefix : Name) (aSizeEqN : Expr) : MetaM MVarId := do -α ← getArrayArgType a; -(newTarget, args) ← introArrayLitAux mvarId α a n xNamePrefix aSizeEqN 0 #[] #[]; -tag ← getMVarTag mvarId; -newMVar ← mkFreshExprSyntheticOpaqueMVar newTarget tag; -assignExprMVar mvarId (mkAppN newMVar args); +let α ← getArrayArgType a +let rec loop (i : Nat) (xs : Array Expr) (args : Array Expr) := do + if i < n then + withLocalDeclD (xNamePrefix.appendIndexAfter (i+1)) α fun xi => do + let xs := xs.push xi + let ai ← mkArrayGetLit a i n aSizeEqN + let args := args.push ai + loop (i+1) xs args + else + let xsLit ← mkArrayLit α xs.toList + let aEqXsLit ← mkEq a xsLit + let aEqLitPrf ← mkAppM `Array.toArrayLitEq #[a, mkNatLit n, aSizeEqN] + withLocalDeclD `hEqALit aEqXsLit fun heq => do + let target ← getMVarType mvarId + let newTarget ← mkForallFVars (xs.push heq) target + pure (newTarget, args.push aEqLitPrf) +let (newTarget, args) ← loop 0 #[] #[] +let tag ← getMVarTag mvarId +let newMVar ← mkFreshExprSyntheticOpaqueMVar newTarget tag +assignExprMVar mvarId (mkAppN newMVar args) pure newMVar.mvarId! /-- @@ -64,33 +61,32 @@ pure newMVar.mvarId! n+1) `..., (h_1 : a.size != sizes[0]), ..., (h_n : a.size != sizes[n-1]) |- C a` where `n = sizes.size` -/ def caseArraySizes (mvarId : MVarId) (fvarId : FVarId) (sizes : Array Nat) (xNamePrefix := `x) (hNamePrefix := `h) : MetaM (Array CaseArraySizesSubgoal) := do -let a := mkFVar fvarId; -α ← getArrayArgType a; -aSize ← mkAppM `Array.size #[a]; -mvarId ← assertExt mvarId `aSize (mkConst `Nat) aSize; -(aSizeFVarId, mvarId) ← intro1 mvarId; -(hEq, mvarId) ← intro1 mvarId; -subgoals ← caseValues mvarId aSizeFVarId (sizes.map mkNatLit) hNamePrefix; +let a := mkFVar fvarId +let α ← getArrayArgType a +let aSize ← mkAppM `Array.size #[a] +let mvarId ← assertExt mvarId `aSize (mkConst `Nat) aSize +let (aSizeFVarId, mvarId) ← intro1 mvarId +let (hEq, mvarId) ← intro1 mvarId +let subgoals ← caseValues mvarId aSizeFVarId (sizes.map mkNatLit) hNamePrefix subgoals.mapIdxM fun i subgoal => do - let subst := subgoal.subst; - let mvarId := subgoal.mvarId; - let hEqSz := (subst.get hEq).fvarId!; - if h : i < sizes.size then do - let n := sizes.get ⟨i, h⟩; - mvarId ← clear mvarId (subgoal.newHs.get! 0); - mvarId ← clear mvarId (subst.get aSizeFVarId).fvarId!; + let subst := subgoal.subst + let mvarId := subgoal.mvarId + let hEqSz := (subst.get hEq).fvarId! + if h : i < sizes.size then + let n := sizes.get ⟨i, h⟩ + let mvarId ← clear mvarId subgoal.newHs[0] + let mvarId ← clear mvarId (subst.get aSizeFVarId).fvarId! withMVarContext mvarId do - hEqSzSymm ← mkEqSymm (mkFVar hEqSz); - mvarId ← introArrayLit mvarId a n xNamePrefix hEqSzSymm; - (xs, mvarId) ← introN mvarId n; - (hEqLit, mvarId) ← intro1 mvarId; - mvarId ← clear mvarId hEqSz; - (subst, mvarId) ← substCore mvarId hEqLit false subst; + let hEqSzSymm ← mkEqSymm (mkFVar hEqSz) + let mvarId ← introArrayLit mvarId a n xNamePrefix hEqSzSymm + let (xs, mvarId) ← introN mvarId n + let (hEqLit, mvarId) ← intro1 mvarId + let mvarId ← clear mvarId hEqSz + let (subst, mvarId) ← substCore mvarId hEqLit false subst pure { mvarId := mvarId, elems := xs, subst := subst } - else do - (subst, mvarId) ← substCore mvarId hEq false subst; - let diseqs := subgoal.newHs.map fun fvarId => (subst.get fvarId).fvarId!; + else + let (subst, mvarId) ← substCore mvarId hEq false subst + let diseqs := subgoal.newHs.map fun fvarId => (subst.get fvarId).fvarId! pure { mvarId := mvarId, diseqs := diseqs, subst := subst } -end Meta -end Lean +end Lean.Meta diff --git a/stage0/src/Lean/Meta/Match/CaseValues.lean b/stage0/src/Lean/Meta/Match/CaseValues.lean index 0423e4a06a..b024550c29 100644 --- a/stage0/src/Lean/Meta/Match/CaseValues.lean +++ b/stage0/src/Lean/Meta/Match/CaseValues.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2020 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -6,8 +7,7 @@ Authors: Leonardo de Moura import Lean.Meta.Tactic.Subst import Lean.Meta.Tactic.Clear -namespace Lean -namespace Meta +namespace Lean.Meta structure CaseValueSubgoal := (mvarId : MVarId) @@ -28,37 +28,36 @@ instance CaseValueSubgoal.inhabited : Inhabited CaseValueSubgoal := def caseValueAux (mvarId : MVarId) (fvarId : FVarId) (value : Expr) (hName : Name := `h) (subst : FVarSubst := {}) : MetaM (CaseValueSubgoal × CaseValueSubgoal) := withMVarContext mvarId $ do - tag ← getMVarTag mvarId; - checkNotAssigned mvarId `caseValue; - target ← getMVarType mvarId; - xEqValue ← mkEq (mkFVar fvarId) value; - let xNeqValue := mkApp (mkConst `Not) xEqValue; - let thenTarget := Lean.mkForall hName BinderInfo.default xEqValue target; - let elseTarget := Lean.mkForall hName BinderInfo.default xNeqValue target; - thenMVar ← mkFreshExprSyntheticOpaqueMVar thenTarget tag; - elseMVar ← mkFreshExprSyntheticOpaqueMVar elseTarget tag; - val ← mkAppOptM `dite #[none, xEqValue, none, thenMVar, elseMVar]; - assignExprMVar mvarId val; - (elseH, elseMVarId) ← intro1P elseMVar.mvarId!; - let elseSubgoal := { mvarId := elseMVarId, newH := elseH, subst := subst : CaseValueSubgoal }; - (thenH, thenMVarId) ← intro1P thenMVar.mvarId!; - let symm := false; - let clearH := false; - (thenSubst, thenMVarId) ← substCore thenMVarId thenH symm subst clearH; - withMVarContext thenMVarId do { - trace! `Meta ("subst domain: " ++ toString thenSubst.domain); - let thenH := (thenSubst.get thenH).fvarId!; - trace! `Meta "searching for decl"; - decl ← getLocalDecl thenH; - trace! `Meta "found decl" - }; - let thenSubgoal := { mvarId := thenMVarId, newH := (thenSubst.get thenH).fvarId!, subst := thenSubst : CaseValueSubgoal }; + let tag ← getMVarTag mvarId + checkNotAssigned mvarId `caseValue + let target ← getMVarType mvarId + let xEqValue ← mkEq (mkFVar fvarId) value + let xNeqValue := mkApp (mkConst `Not) xEqValue + let thenTarget := Lean.mkForall hName BinderInfo.default xEqValue target + let elseTarget := Lean.mkForall hName BinderInfo.default xNeqValue target + let thenMVar ← mkFreshExprSyntheticOpaqueMVar thenTarget tag + let elseMVar ← mkFreshExprSyntheticOpaqueMVar elseTarget tag + let val ← mkAppOptM `dite #[none, xEqValue, none, thenMVar, elseMVar] + assignExprMVar mvarId val + let (elseH, elseMVarId) ← intro1P elseMVar.mvarId! + let elseSubgoal := { mvarId := elseMVarId, newH := elseH, subst := subst : CaseValueSubgoal } + let (thenH, thenMVarId) ← intro1P thenMVar.mvarId! + let symm := false + let clearH := false + let (thenSubst, thenMVarId) ← substCore thenMVarId thenH symm subst clearH + withMVarContext thenMVarId do + trace[Meta]! "subst domain: {thenSubst.domain}" + let thenH := (thenSubst.get thenH).fvarId! + trace[Meta]! "searching for decl" + let decl ← getLocalDecl thenH + trace[Meta]! "found decl" + let thenSubgoal := { mvarId := thenMVarId, newH := (thenSubst.get thenH).fvarId!, subst := thenSubst : CaseValueSubgoal } pure (thenSubgoal, elseSubgoal) def caseValue (mvarId : MVarId) (fvarId : FVarId) (value : Expr) : MetaM (CaseValueSubgoal × CaseValueSubgoal) := do -s ← caseValueAux mvarId fvarId value; -appendTagSuffix s.1.mvarId `thenBranch; -appendTagSuffix s.2.mvarId `elseBranch; +let s ← caseValueAux mvarId fvarId value +appendTagSuffix s.1.mvarId `thenBranch +appendTagSuffix s.2.mvarId `elseBranch pure s structure CaseValuesSubgoal := @@ -69,23 +68,6 @@ structure CaseValuesSubgoal := instance CaseValueSubgoals.inhabited : Inhabited CaseValuesSubgoal := ⟨{ mvarId := arbitrary _ }⟩ -private def caseValuesAux (hNamePrefix : Name) (fvarId : FVarId) : Nat → MVarId → List Expr → Array FVarId → Array CaseValuesSubgoal → MetaM (Array CaseValuesSubgoal) -| i, mvarId, [], hs, subgoals => throwTacticEx `caseValues mvarId "list of values must not be empty" -| i, mvarId, v::vs, hs, subgoals => do - (thenSubgoal, elseSubgoal) ← caseValueAux mvarId fvarId v (hNamePrefix.appendIndexAfter i) {}; - appendTagSuffix thenSubgoal.mvarId ((`case).appendIndexAfter i); - thenMVarId ← hs.foldlM - (fun thenMVarId h => match thenSubgoal.subst.get h with - | Expr.fvar fvarId _ => tryClear thenMVarId fvarId - | _ => pure thenMVarId) - thenSubgoal.mvarId; - let subgoals := subgoals.push { mvarId := thenMVarId, newHs := #[thenSubgoal.newH], subst := thenSubgoal.subst }; - match vs with - | [] => do - appendTagSuffix elseSubgoal.mvarId ((`case).appendIndexAfter (i+1)); - pure $ subgoals.push { mvarId := elseSubgoal.mvarId, newHs := hs.push elseSubgoal.newH, subst := {} } - | _ => caseValuesAux (i+1) elseSubgoal.mvarId vs (hs.push elseSubgoal.newH) subgoals - /-- Split goal `... |- C x` into values.size + 1 subgoals 1) `..., (h_1 : x = value[0]) |- C value[0]` @@ -99,7 +81,22 @@ private def caseValuesAux (hNamePrefix : Name) (fvarId : FVarId) : Nat → MVarI Remark: the last subgoal is for the "else" catchall case, and its `subst` is `{}`. Remark: the fiels `newHs` has size 1 forall but the last subgoal. -/ def caseValues (mvarId : MVarId) (fvarId : FVarId) (values : Array Expr) (hNamePrefix := `h) : MetaM (Array CaseValuesSubgoal) := -caseValuesAux hNamePrefix fvarId 1 mvarId values.toList #[] #[] +let rec loop : Nat → MVarId → List Expr → Array FVarId → Array CaseValuesSubgoal → MetaM (Array CaseValuesSubgoal) + | i, mvarId, [], hs, subgoals => throwTacticEx `caseValues mvarId "list of values must not be empty" + | i, mvarId, v::vs, hs, subgoals => do + let (thenSubgoal, elseSubgoal) ← caseValueAux mvarId fvarId v (hNamePrefix.appendIndexAfter i) {} + appendTagSuffix thenSubgoal.mvarId ((`case).appendIndexAfter i) + let thenMVarId ← hs.foldlM + (fun thenMVarId h => match thenSubgoal.subst.get h with + | Expr.fvar fvarId _ => tryClear thenMVarId fvarId + | _ => pure thenMVarId) + thenSubgoal.mvarId + let subgoals := subgoals.push { mvarId := thenMVarId, newHs := #[thenSubgoal.newH], subst := thenSubgoal.subst } + match vs with + | [] => do + appendTagSuffix elseSubgoal.mvarId ((`case).appendIndexAfter (i+1)) + pure $ subgoals.push { mvarId := elseSubgoal.mvarId, newHs := hs.push elseSubgoal.newH, subst := {} } + | _ => loop (i+1) elseSubgoal.mvarId vs (hs.push elseSubgoal.newH) subgoals +loop 1 mvarId values.toList #[] #[] -end Meta -end Lean +end Lean.Meta diff --git a/stage0/src/Lean/Meta/Match/MVarRenaming.lean b/stage0/src/Lean/Meta/Match/MVarRenaming.lean index c7f5647ea3..682b9df2f7 100644 --- a/stage0/src/Lean/Meta/Match/MVarRenaming.lean +++ b/stage0/src/Lean/Meta/Match/MVarRenaming.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2020 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -5,8 +6,7 @@ Authors: Leonardo de Moura -/ import Lean.Util.ReplaceExpr -namespace Lean -namespace Meta +namespace Lean.Meta /- A mapping from MVarId to MVarId -/ structure MVarRenaming := @@ -33,5 +33,4 @@ else e.replace $ fun e => match e with | some newMVarId => mkMVar newMVarId | _ => none -end Meta -end Lean +end Lean.Meta diff --git a/stage0/src/Lean/Meta/Match/Match.lean b/stage0/src/Lean/Meta/Match/Match.lean index 1c57117c8c..74c1f23b3a 100644 --- a/stage0/src/Lean/Meta/Match/Match.lean +++ b/stage0/src/Lean/Meta/Match/Match.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2020 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -13,9 +14,7 @@ import Lean.Meta.Match.MVarRenaming import Lean.Meta.Match.CaseValues import Lean.Meta.Match.CaseArraySizes -namespace Lean -namespace Meta -namespace Match +namespace Lean.Meta.Match inductive Pattern : Type | inaccessible (e : Expr) : Pattern @@ -30,13 +29,13 @@ namespace Pattern instance : Inhabited Pattern := ⟨Pattern.inaccessible (arbitrary _)⟩ partial def toMessageData : Pattern → MessageData -| inaccessible e => ".(" ++ e ++ ")" +| inaccessible e => msg!".({e})" | var varId => mkFVar varId | ctor ctorName _ _ [] => ctorName -| ctor ctorName _ _ pats => "(" ++ ctorName ++ pats.foldl (fun (msg : MessageData) pat => msg ++ " " ++ toMessageData pat) Format.nil ++ ")" +| ctor ctorName _ _ pats => msg!"({ctorName}{pats.foldl (fun (msg : MessageData) pat => msg ++ " " ++ toMessageData pat) Format.nil})" | val e => e -| arrayLit _ pats => "#[" ++ MessageData.joinSep (pats.map toMessageData) ", " ++ "]" -| as varId p => mkFVar varId ++ "@" ++toMessageData p +| arrayLit _ pats => msg!"#[{MessageData.joinSep (pats.map toMessageData) ", "}]" +| as varId p => msg!"{mkFVar varId}@{toMessageData p}" partial def toExpr : Pattern → MetaM Expr | inaccessible e => pure e @@ -44,27 +43,27 @@ partial def toExpr : Pattern → MetaM Expr | val e => pure e | as _ p => toExpr p | arrayLit type xs => do - xs ← xs.mapM toExpr; + let xs ← xs.mapM toExpr; mkArrayLit type xs | ctor ctorName us params fields => do - fields ← fields.mapM toExpr; + let fields ← fields.mapM toExpr; pure $ mkAppN (mkConst ctorName us) (params ++ fields).toArray /- Apply the free variable substitution `s` to the given pattern -/ partial def applyFVarSubst (s : FVarSubst) : Pattern → Pattern | inaccessible e => inaccessible $ s.apply e -| ctor n us ps fs => ctor n us (ps.map s.apply) $ fs.map applyFVarSubst +| ctor n us ps fs => ctor n us (ps.map s.apply) $ fs.map (applyFVarSubst s) | val e => val $ s.apply e -| arrayLit t xs => arrayLit (s.apply t) $ xs.map applyFVarSubst +| arrayLit t xs => arrayLit (s.apply t) $ xs.map (applyFVarSubst s) | var fvarId => match s.find? fvarId with | some e => inaccessible e | none => var fvarId | as fvarId p => match s.find? fvarId with - | none => as fvarId $ applyFVarSubst p - | some _ => applyFVarSubst p + | none => as fvarId $ applyFVarSubst s p + | some _ => applyFVarSubst s p def replaceFVarId (fvarId : FVarId) (v : Expr) (p : Pattern) : Pattern := -let s : FVarSubst := {}; +let s : FVarSubst := {} p.applyFVarSubst (s.insert fvarId v) end Pattern @@ -87,8 +86,8 @@ instance : Inhabited Alt := ⟨⟨arbitrary _, 0, arbitrary _, [], []⟩⟩ partial def toMessageData (alt : Alt) : MetaM MessageData := do withExistingLocalDecls alt.fvarDecls do - let msg : List MessageData := alt.fvarDecls.map fun d => d.toExpr ++ ":(" ++ d.type ++ ")"; - let msg : MessageData := msg ++ " |- " ++ (alt.patterns.map Pattern.toMessageData) ++ " => " ++ alt.rhs; + let msg : List MessageData := alt.fvarDecls.map fun d => d.toExpr ++ ":(" ++ d.type ++ ")" + let msg : MessageData := msg ++ " |- " ++ (alt.patterns.map Pattern.toMessageData) ++ " => " ++ alt.rhs addMessageContext msg def applyFVarSubst (s : FVarSubst) (alt : Alt) : Alt := @@ -101,7 +100,7 @@ def replaceFVarId (fvarId : FVarId) (v : Expr) (alt : Alt) : Alt := { alt with patterns := alt.patterns.map fun p => p.replaceFVarId fvarId v, fvarDecls := - let decls := alt.fvarDecls.filter fun d => d.fvarId != fvarId; + let decls := alt.fvarDecls.filter fun d => d.fvarId != fvarId decls.map $ replaceFVarIdAtLocalDecl fvarId v, rhs := alt.rhs.replaceFVarId fvarId v } @@ -151,11 +150,11 @@ def checkAndReplaceFVarId (fvarId : FVarId) (v : Expr) (alt : Alt) : MetaM Alt : match alt.fvarDecls.find? fun (fvarDecl : LocalDecl) => fvarDecl.fvarId == fvarId with | none => throwErrorAt alt.ref "unknown free pattern variable" | some fvarDecl => do - vType ← inferType v; - unlessM (isDefEqGuarded fvarDecl.type vType) $ - withExistingLocalDecls alt.fvarDecls $ throwErrorAt alt.ref $ - "type mismatch during dependent match-elimination at pattern variable '" ++ mkFVar fvarDecl.fvarId ++ "' with type" ++ indentExpr fvarDecl.type ++ - Format.line ++ "expected type" ++ indentExpr vType; + let vType ← inferType v + unless (← isDefEqGuarded fvarDecl.type vType) do + withExistingLocalDecls alt.fvarDecls do + throwErrorAt alt.ref $ + msg!"type mismatch during dependent match-elimination at pattern variable '{mkFVar fvarDecl.fvarId}' with type{indentExpr fvarDecl.type}\nexpected type{indentExpr vType}" pure $ replaceFVarId fvarId v alt end Alt @@ -171,8 +170,8 @@ namespace Example partial def replaceFVarId (fvarId : FVarId) (ex : Example) : Example → Example | var x => if x == fvarId then ex else var x -| ctor n exs => ctor n $ exs.map replaceFVarId -| arrayLit exs => arrayLit $ exs.map replaceFVarId +| ctor n exs => ctor n $ exs.map (replaceFVarId fvarId ex) +| arrayLit exs => arrayLit $ exs.map (replaceFVarId fvarId ex) | ex => ex partial def applyFVarSubst (s : FVarSubst) : Example → Example @@ -180,8 +179,8 @@ partial def applyFVarSubst (s : FVarSubst) : Example → Example match s.get fvarId with | Expr.fvar fvarId' _ => var fvarId' | _ => underscore -| ctor n exs => ctor n $ exs.map applyFVarSubst -| arrayLit exs => arrayLit $ exs.map applyFVarSubst +| ctor n exs => ctor n $ exs.map (applyFVarSubst s) +| arrayLit exs => arrayLit $ exs.map (applyFVarSubst s) | ex => ex partial def varsToUnderscore : Example → Example @@ -218,8 +217,8 @@ instance : Inhabited Problem := ⟨{ mvarId := arbitrary _, vars := [], alts := def toMessageData (p : Problem) : MetaM MessageData := withGoalOf p do - alts ← p.alts.mapM Alt.toMessageData; - vars : List MessageData ← p.vars.mapM fun x => do { xType ← inferType x; pure (x ++ ":(" ++ xType ++ ")" : MessageData) }; + let alts ← p.alts.mapM Alt.toMessageData + let vars : List MessageData ← p.vars.mapM fun x => do let xType ← inferType x; pure (x ++ ":(" ++ xType ++ ")" : MessageData) pure $ "remaining variables: " ++ vars ++ Format.line ++ "alternatives:" ++ indentD (MessageData.joinSep alts Format.line) ++ Format.line ++ "examples: " ++ examplesToMessageData p.examples @@ -240,30 +239,29 @@ structure MatcherResult := (unusedAltIdxs : List Nat) /- The number of patterns in each AltLHS must be equal to majors.length -/ -private def checkNumPatterns (majors : Array Expr) (lhss : List AltLHS) : MetaM Unit := -let num := majors.size; -when (lhss.any (fun lhs => lhs.patterns.length != num)) $ +private def checkNumPatterns (majors : Array Expr) (lhss : List AltLHS) : MetaM Unit := do +let num := majors.size +if lhss.any fun lhs => lhs.patterns.length != num then throwError "incorrect number of patterns" private partial def withAltsAux {α} (motive : Expr) : List AltLHS → List Alt → Array (Expr × Nat) → (List Alt → Array (Expr × Nat) → MetaM α) → MetaM α | [], alts, minors, k => k alts.reverse minors | lhs::lhss, alts, minors, k => do - let xs := lhs.fvarDecls.toArray.map LocalDecl.toExpr; - minorType ← withExistingLocalDecls lhs.fvarDecls do { - args ← lhs.patterns.toArray.mapM Pattern.toExpr; - let minorType := mkAppN motive args; + let xs := lhs.fvarDecls.toArray.map LocalDecl.toExpr + let minorType ← withExistingLocalDecls lhs.fvarDecls do + let args ← lhs.patterns.toArray.mapM Pattern.toExpr + let minorType := mkAppN motive args mkForallFVars xs minorType - }; - let (minorType, minorNumParams) := if !xs.isEmpty then (minorType, xs.size) else (mkSimpleThunkType minorType, 1); - let idx := alts.length; - let minorName := (`h).appendIndexAfter (idx+1); - trace! `Meta.Match.debug ("minor premise " ++ minorName ++ " : " ++ minorType); + let (minorType, minorNumParams) := if !xs.isEmpty then (minorType, xs.size) else (mkSimpleThunkType minorType, 1) + let idx := alts.length + let minorName := (`h).appendIndexAfter (idx+1) + trace! `Meta.Match.debug ("minor premise " ++ minorName ++ " : " ++ minorType) withLocalDeclD minorName minorType fun minor => do - let rhs := if xs.isEmpty then mkApp minor (mkConst `Unit.unit) else mkAppN minor xs; - let minors := minors.push (minor, minorNumParams); - fvarDecls ← lhs.fvarDecls.mapM instantiateLocalDeclMVars; - let alts := { ref := lhs.ref, idx := idx, rhs := rhs, fvarDecls := fvarDecls, patterns := lhs.patterns : Alt } :: alts; - withAltsAux lhss alts minors k + let rhs := if xs.isEmpty then mkApp minor (mkConst `Unit.unit) else mkAppN minor xs + let minors := minors.push (minor, minorNumParams) + let fvarDecls ← lhs.fvarDecls.mapM instantiateLocalDeclMVars + let alts := { ref := lhs.ref, idx := idx, rhs := rhs, fvarDecls := fvarDecls, patterns := lhs.patterns : Alt } :: alts + withAltsAux motive lhss alts minors k /- Given a list of `AltLHS`, create a minor premise for each one, convert them into `Alt`, and then execute `k` -/ private partial def withAlts {α} (motive : Expr) (lhss : List AltLHS) (k : List Alt → Array (Expr × Nat) → MetaM α) : MetaM α := @@ -358,41 +356,41 @@ match p.vars with | x :: xs => do let alts := p.alts.map fun alt => match alt.patterns with | Pattern.inaccessible _ :: ps => { alt with patterns := ps } - | _ => unreachable!; + | _ => unreachable! { p with alts := alts, vars := xs } private def processLeaf (p : Problem) : StateRefT State MetaM Unit := match p.alts with | [] => do - liftM $ admit p.mvarId; + liftM $ admit p.mvarId modify fun s => { s with counterExamples := p.examples :: s.counterExamples } | alt :: _ => do -- TODO: check whether we have unassigned metavars in rhs - liftM $ assignGoalOf p alt.rhs; + liftM $ assignGoalOf p alt.rhs modify fun s => { s with used := s.used.insert alt.idx } private def processAsPattern (p : Problem) : MetaM Problem := match p.vars with | [] => unreachable! | x :: xs => withGoalOf p do - alts ← p.alts.mapM fun alt => match alt.patterns with + let alts ← p.alts.mapM fun alt => match alt.patterns with | Pattern.as fvarId p :: ps => { alt with patterns := p :: ps }.checkAndReplaceFVarId fvarId x - | _ => pure alt; + | _ => pure alt pure { p with alts := alts } private def processVariable (p : Problem) : MetaM Problem := match p.vars with | [] => unreachable! | x :: xs => withGoalOf p do - alts ← p.alts.mapM fun alt => match alt.patterns with + let alts ← p.alts.mapM fun alt => match alt.patterns with | Pattern.inaccessible _ :: ps => pure { alt with patterns := ps } | Pattern.var fvarId :: ps => { alt with patterns := ps }.checkAndReplaceFVarId fvarId x - | _ => unreachable!; + | _ => unreachable! pure { p with alts := alts, vars := xs } private def throwInductiveTypeExpected {α} (e : Expr) : MetaM α := do -t ← inferType e; -throwError ("failed to compile pattern matching, inductive type expected" ++ indentExpr e ++ Format.line ++ "has type" ++ indentExpr t) +let t ← inferType e +throwError! "failed to compile pattern matching, inductive type expected{indentExpr e}\nhas type{indentExpr t}" private def inLocalDecls (localDecls : List LocalDecl) (fvarId : FVarId) : Bool := localDecls.any fun d => d.fvarId == fvarId @@ -408,39 +406,39 @@ structure State := abbrev M := ReaderT Context $ StateRefT State MetaM def isAltVar (fvarId : FVarId) : M Bool := do -ctx ← read; +let ctx ← read pure $ inLocalDecls ctx.altFVarDecls fvarId def expandIfVar (e : Expr) : M Expr := do match e with -| Expr.fvar _ _ => do s ← get; pure $ s.fvarSubst.apply e -| _ => pure e +| Expr.fvar _ _ => return (← get).fvarSubst.apply e +| _ => return e def occurs (fvarId : FVarId) (v : Expr) : Bool := (v.find? fun e => match e with | Expr.fvar fvarId' _ => fvarId == fvarId' | _=> false).isSome -def assign (fvarId : FVarId) (v : Expr) : M Bool := -if occurs fvarId v then do - trace! `Meta.Match.unify ("assign occurs check failed, " ++ mkFVar fvarId ++ " := " ++ v); +def assign (fvarId : FVarId) (v : Expr) : M Bool := do +if occurs fvarId v then + trace[Meta.Match.unify]! "assign occurs check failed, {mkFVar fvarId} := {v}" pure false -else do - ctx ← read; - condM (isAltVar fvarId) - (do - trace! `Meta.Match.unify (mkFVar fvarId ++ " := " ++ v); - modify fun s => { s with fvarSubst := s.fvarSubst.insert fvarId v }; pure true) - (do - trace! `Meta.Match.unify ("assign failed variable is not local, " ++ mkFVar fvarId ++ " := " ++ v); - pure false) +else + let ctx ← read + if (← isAltVar fvarId) then + trace[Meta.Match.unify]! "{mkFVar fvarId} := {v}" + modify fun s => { s with fvarSubst := s.fvarSubst.insert fvarId v } + pure true + else + trace! `Meta.Match.unify ("assign failed variable is not local, " ++ mkFVar fvarId ++ " := " ++ v) + pure false partial def unify : Expr → Expr → M Bool | a, b => do - trace! `Meta.Match.unify (a ++ " =?= " ++ b); + trace! `Meta.Match.unify (a ++ " =?= " ++ b) condM (isDefEq a b) (pure true) do - a' ← expandIfVar a; - b' ← expandIfVar b; + let a' ← expandIfVar a + let b' ← expandIfVar b if a != a' || b != b' then unify a' b' else match a, b with | Expr.mdata _ a _, b => unify a b @@ -450,57 +448,57 @@ partial def unify : Expr → Expr → M Bool | a, Expr.fvar bFVarId _ => assign bFVarId a | Expr.app aFn aArg _, Expr.app bFn bArg _ => unify aFn bFn <&&> unify aArg bArg | _, _ => do - trace! `Meta.Match.unify ("unify failed @" ++ a ++ " =?= " ++ b); + trace! `Meta.Match.unify ("unify failed @" ++ a ++ " =?= " ++ b) pure false end Unify private def unify? (altFVarDecls : List LocalDecl) (a b : Expr) : MetaM (Option FVarSubst) := do -a ← instantiateMVars a; -b ← instantiateMVars b; -(b, s) ← (Unify.unify a b { altFVarDecls := altFVarDecls}).run {}; +let a ← instantiateMVars a +let b ← instantiateMVars b +let (b, s) ← (Unify.unify a b { altFVarDecls := altFVarDecls}).run {} if b then pure s.fvarSubst else pure none private def expandVarIntoCtor? (alt : Alt) (fvarId : FVarId) (ctorName : Name) : MetaM (Option Alt) := withExistingLocalDecls alt.fvarDecls do - env ← getEnv; - ldecl ← getLocalDecl fvarId; - expectedType ← inferType (mkFVar fvarId); - expectedType ← whnfD expectedType; - (ctorLevels, ctorParams) ← getInductiveUniverseAndParams expectedType; - let ctor := mkAppN (mkConst ctorName ctorLevels) ctorParams; - ctorType ← inferType ctor; + let env ← getEnv + let ldecl ← getLocalDecl fvarId + let expectedType ← inferType (mkFVar fvarId) + let expectedType ← whnfD expectedType + let (ctorLevels, ctorParams) ← getInductiveUniverseAndParams expectedType + let ctor := mkAppN (mkConst ctorName ctorLevels) ctorParams + let ctorType ← inferType ctor forallTelescopeReducing ctorType fun ctorFields resultType => do - let ctor := mkAppN ctor ctorFields; - let alt := alt.replaceFVarId fvarId ctor; - ctorFieldDecls ← ctorFields.mapM fun ctorField => getLocalDecl ctorField.fvarId!; - let newAltDecls := ctorFieldDecls.toList ++ alt.fvarDecls; - subst? ← unify? newAltDecls resultType expectedType; + let ctor := mkAppN ctor ctorFields + let alt := alt.replaceFVarId fvarId ctor + let ctorFieldDecls ← ctorFields.mapM fun ctorField => getLocalDecl ctorField.fvarId! + let newAltDecls := ctorFieldDecls.toList ++ alt.fvarDecls + let subst? ← unify? newAltDecls resultType expectedType match subst? with | none => pure none | some subst => do - let newAltDecls := newAltDecls.filter fun d => !subst.contains d.fvarId; -- remove declarations that were assigned - let newAltDecls := newAltDecls.map fun d => d.applyFVarSubst subst; -- apply substitution to remaining declaration types - let patterns := alt.patterns.map fun p => p.applyFVarSubst subst; - let rhs := subst.apply alt.rhs; + let newAltDecls := newAltDecls.filter fun d => !subst.contains d.fvarId -- remove declarations that were assigned + let newAltDecls := newAltDecls.map fun d => d.applyFVarSubst subst -- apply substitution to remaining declaration types + let patterns := alt.patterns.map fun p => p.applyFVarSubst subst + let rhs := subst.apply alt.rhs let ctorFieldPatterns := ctorFields.toList.map fun ctorField => match subst.get ctorField.fvarId! with | e@(Expr.fvar fvarId _) => if inLocalDecls newAltDecls fvarId then Pattern.var fvarId else Pattern.inaccessible e - | e => Pattern.inaccessible e; + | e => Pattern.inaccessible e pure $ some { alt with fvarDecls := newAltDecls, rhs := rhs, patterns := ctorFieldPatterns ++ patterns } private def getInductiveVal? (x : Expr) : MetaM (Option InductiveVal) := do -xType ← inferType x; -xType ← whnfD xType; +let xType ← inferType x +let xType ← whnfD xType match xType.getAppFn with | Expr.const constName _ _ => do - cinfo ← getConstInfo constName; + let cinfo ← getConstInfo constName match cinfo with | ConstantInfo.inductInfo val => pure (some val) | _ => pure none | _ => pure none private def hasRecursiveType (x : Expr) : MetaM Bool := do -val? ← getInductiveVal? x; +let val? ← getInductiveVal? x match val? with | some val => pure val.isRec | _ => pure false @@ -512,102 +510,96 @@ match val? with update the next patterns with the fields of the constructor. Otherwise, return none. -/ def processInaccessibleAsCtor (alt : Alt) (ctorName : Name) : MetaM (Option Alt) := do -env ← getEnv; +let env ← getEnv match alt.patterns with | p@(Pattern.inaccessible e) :: ps => do - trace! `Meta.Match.match ("inaccessible in ctor step " ++ e); + trace! `Meta.Match.match ("inaccessible in ctor step " ++ e) withExistingLocalDecls alt.fvarDecls do -- Try to push inaccessible annotations. - e ← whnfD e; + let e ← whnfD e match e.constructorApp? env with | some (ctorVal, ctorArgs) => do if ctorVal.name == ctorName then - let fields := ctorArgs.extract ctorVal.nparams ctorArgs.size; - let fields := fields.toList.map Pattern.inaccessible; + let fields := ctorArgs.extract ctorVal.nparams ctorArgs.size + let fields := fields.toList.map Pattern.inaccessible pure $ some { alt with patterns := fields ++ ps } else pure none - | _ => throwErrorAt alt.ref $ - "dependent match elimination failed, inaccessible pattern found " ++ indentD p.toMessageData ++ - Format.line ++ "constructor expected" + | _ => throwErrorAt! alt.ref "dependent match elimination failed, inaccessible pattern found{indentD p.toMessageData}\nconstructor expected" | _ => unreachable! private def processConstructor (p : Problem) : MetaM (Array Problem) := do -trace! `Meta.Match.match ("constructor step"); -env ← getEnv; +trace! `Meta.Match.match ("constructor step") +let env ← getEnv match p.vars with | [] => unreachable! | x :: xs => do - subgoals? ← commitWhenSome? do { - subgoals ← cases p.mvarId x.fvarId!; + let subgoals? ← commitWhenSome? do + let subgoals ← cases p.mvarId x.fvarId! if subgoals.isEmpty then /- Easy case: we have solved problem `p` since there are no subgoals -/ pure (some #[]) else if !p.alts.isEmpty then pure (some subgoals) else do - isRec ← withGoalOf p $ hasRecursiveType x; + let isRec ← withGoalOf p $ hasRecursiveType x /- If there are no alternatives and the type of the current variable is recursive, we do NOT consider a constructor-transition to avoid nontermination. TODO: implement a more general approach if this is not sufficient in practice -/ if isRec then pure none else pure (some subgoals) - }; match subgoals? with | none => pure #[{ p with vars := xs }] - | some subgoals => do + | some subgoals => subgoals.mapM fun subgoal => withMVarContext subgoal.mvarId do - let subst := subgoal.subst; - let fields := subgoal.fields.toList; - let newVars := fields ++ xs; - let newVars := newVars.map fun x => x.applyFVarSubst subst; + let subst := subgoal.subst + let fields := subgoal.fields.toList + let newVars := fields ++ xs + let newVars := newVars.map fun x => x.applyFVarSubst subst let subex := Example.ctor subgoal.ctorName $ fields.map fun field => match field with | Expr.fvar fvarId _ => Example.var fvarId - | _ => Example.underscore; -- This case can happen due to dependent elimination - let examples := p.examples.map $ Example.replaceFVarId x.fvarId! subex; - let examples := examples.map $ Example.applyFVarSubst subst; + | _ => Example.underscore -- This case can happen due to dependent elimination + let examples := p.examples.map $ Example.replaceFVarId x.fvarId! subex + let examples := examples.map $ Example.applyFVarSubst subst let newAlts := p.alts.filter fun alt => match alt.patterns with | Pattern.ctor n _ _ _ :: _ => n == subgoal.ctorName | Pattern.var _ :: _ => true | Pattern.inaccessible _ :: _ => true - | _ => false; - let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst; - newAlts ← newAlts.filterMapM fun alt => match alt.patterns with + | _ => false + let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst + let newAlts ← newAlts.filterMapM fun alt => match alt.patterns with | Pattern.ctor _ _ _ fields :: ps => pure $ some { alt with patterns := fields ++ ps } | Pattern.var fvarId :: ps => expandVarIntoCtor? { alt with patterns := ps } fvarId subgoal.ctorName | Pattern.inaccessible _ :: _ => processInaccessibleAsCtor alt subgoal.ctorName - | _ => unreachable!; + | _ => unreachable! pure { mvarId := subgoal.mvarId, vars := newVars, alts := newAlts, examples := examples } private def processNonVariable (p : Problem) : MetaM Problem := match p.vars with | [] => unreachable! | x :: xs => withGoalOf p do - x ← whnfD x; - env ← getEnv; + let x ← whnfD x + let env ← getEnv match x.constructorApp? env with | some (ctorVal, xArgs) => do - alts ← p.alts.filterMapM fun alt => match alt.patterns with + let alts ← p.alts.filterMapM fun alt => match alt.patterns with | Pattern.ctor n _ _ fields :: ps => if n != ctorVal.name then pure none else pure $ some { alt with patterns := fields ++ ps } | Pattern.inaccessible _ :: _ => processInaccessibleAsCtor alt ctorVal.name - | p :: _ => throwError ("failed to compile pattern matching, inaccessible pattern or constructor expected" ++ indentD p.toMessageData) - | _ => unreachable!; - let xFields := xArgs.extract ctorVal.nparams xArgs.size; + | p :: _ => throwError! "failed to compile pattern matching, inaccessible pattern or constructor expected{indentD p.toMessageData}" + | _ => unreachable! + let xFields := xArgs.extract ctorVal.nparams xArgs.size pure { p with alts := alts, vars := xFields.toList ++ xs } - | none => - throwError ("failed to compile pattern matching, constructor expected" ++ indentExpr x) + | none => throwError! "failed to compile pattern matching, constructor expected{indentExpr x}" private def collectValues (p : Problem) : Array Expr := -p.alts.foldl - (fun (values : Array Expr) alt => - match alt.patterns with - | Pattern.val v :: _ => if values.contains v then values else values.push v - | _ => values) - #[] +p.alts.foldl (init := #[]) fun values alt => + match alt.patterns with + | Pattern.val v :: _ => if values.contains v then values else values.push v + | _ => values private def isFirstPatternVar (alt : Alt) : Bool := match alt.patterns with @@ -615,98 +607,96 @@ match alt.patterns with | _ => false private def processValue (p : Problem) : MetaM (Array Problem) := do -trace! `Meta.Match.match ("value step"); +trace[Meta.Match.match]! "value step" match p.vars with | [] => unreachable! | x :: xs => do - let values := collectValues p; - subgoals ← caseValues p.mvarId x.fvarId! values; + let values := collectValues p + let subgoals ← caseValues p.mvarId x.fvarId! values subgoals.mapIdxM fun i subgoal => if h : i < values.size then do - let value := values.get ⟨i, h⟩; + let value := values.get ⟨i, h⟩ -- (x = value) branch - let subst := subgoal.subst; - let examples := p.examples.map $ Example.replaceFVarId x.fvarId! (Example.val value); - let examples := examples.map $ Example.applyFVarSubst subst; + let subst := subgoal.subst + let examples := p.examples.map $ Example.replaceFVarId x.fvarId! (Example.val value) + let examples := examples.map $ Example.applyFVarSubst subst let newAlts := p.alts.filter fun alt => match alt.patterns with | Pattern.val v :: _ => v == value | Pattern.var _ :: _ => true - | _ => false; - let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst; + | _ => false + let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst let newAlts := newAlts.map fun alt => match alt.patterns with | Pattern.val _ :: ps => { alt with patterns := ps } | Pattern.var fvarId :: ps => do - let alt := { alt with patterns := ps }; + let alt := { alt with patterns := ps } alt.replaceFVarId fvarId value - | _ => unreachable!; - let newVars := xs.map fun x => x.applyFVarSubst subst; + | _ => unreachable! + let newVars := xs.map fun x => x.applyFVarSubst subst pure { mvarId := subgoal.mvarId, vars := newVars, alts := newAlts, examples := examples } else do -- else branch - let newAlts := p.alts.filter isFirstPatternVar; + let newAlts := p.alts.filter isFirstPatternVar pure { p with mvarId := subgoal.mvarId, alts := newAlts, vars := x::xs } private def collectArraySizes (p : Problem) : Array Nat := -p.alts.foldl - (fun (sizes : Array Nat) alt => - match alt.patterns with - | Pattern.arrayLit _ ps :: _ => let sz := ps.length; if sizes.contains sz then sizes else sizes.push sz - | _ => sizes) - #[] - -private def expandVarIntoArrayLitAux (alt : Alt) (fvarId : FVarId) (arrayElemType : Expr) (varNamePrefix : Name) : Nat → Array Expr → MetaM Alt -| n+1, newVars => - withLocalDeclD (varNamePrefix.appendIndexAfter (n+1)) arrayElemType fun x => - expandVarIntoArrayLitAux n (newVars.push x) -| 0, newVars => do - arrayLit ← mkArrayLit arrayElemType newVars.toList; - let alt := alt.replaceFVarId fvarId arrayLit; - newDecls ← newVars.toList.mapM fun newVar => getLocalDecl newVar.fvarId!; - let newPatterns := newVars.toList.map fun newVar => Pattern.var newVar.fvarId!; - pure { alt with fvarDecls := newDecls ++ alt.fvarDecls, patterns := newPatterns ++ alt.patterns } +p.alts.foldl (init := #[]) fun sizes alt => + match alt.patterns with + | Pattern.arrayLit _ ps :: _ => let sz := ps.length; if sizes.contains sz then sizes else sizes.push sz + | _ => sizes private def expandVarIntoArrayLit (alt : Alt) (fvarId : FVarId) (arrayElemType : Expr) (arraySize : Nat) : MetaM Alt := withExistingLocalDecls alt.fvarDecls do - fvarDecl ← getLocalDecl fvarId; - expandVarIntoArrayLitAux alt fvarId arrayElemType fvarDecl.userName arraySize #[] + let fvarDecl ← getLocalDecl fvarId + let varNamePrefix := fvarDecl.userName + let rec loop + | n+1, newVars => + withLocalDeclD (varNamePrefix.appendIndexAfter (n+1)) arrayElemType fun x => + loop n (newVars.push x) + | 0, newVars => do + let arrayLit ← mkArrayLit arrayElemType newVars.toList + let alt := alt.replaceFVarId fvarId arrayLit + let newDecls ← newVars.toList.mapM fun newVar => getLocalDecl newVar.fvarId! + let newPatterns := newVars.toList.map fun newVar => Pattern.var newVar.fvarId! + pure { alt with fvarDecls := newDecls ++ alt.fvarDecls, patterns := newPatterns ++ alt.patterns } + loop arraySize #[] private def processArrayLit (p : Problem) : MetaM (Array Problem) := do -trace! `Meta.Match.match ("array literal step"); +trace! `Meta.Match.match ("array literal step") match p.vars with | [] => unreachable! | x :: xs => do - let sizes := collectArraySizes p; - subgoals ← caseArraySizes p.mvarId x.fvarId! sizes; + let sizes := collectArraySizes p + let subgoals ← caseArraySizes p.mvarId x.fvarId! sizes subgoals.mapIdxM fun i subgoal => if h : i < sizes.size then do - let size := sizes.get! i; - let subst := subgoal.subst; - let elems := subgoal.elems.toList; - let newVars := elems.map mkFVar ++ xs; - let newVars := newVars.map fun x => x.applyFVarSubst subst; - let subex := Example.arrayLit $ elems.map Example.var; - let examples := p.examples.map $ Example.replaceFVarId x.fvarId! subex; - let examples := examples.map $ Example.applyFVarSubst subst; + let size := sizes.get! i + let subst := subgoal.subst + let elems := subgoal.elems.toList + let newVars := elems.map mkFVar ++ xs + let newVars := newVars.map fun x => x.applyFVarSubst subst + let subex := Example.arrayLit $ elems.map Example.var + let examples := p.examples.map $ Example.replaceFVarId x.fvarId! subex + let examples := examples.map $ Example.applyFVarSubst subst let newAlts := p.alts.filter fun alt => match alt.patterns with | Pattern.arrayLit _ ps :: _ => ps.length == size | Pattern.var _ :: _ => true - | _ => false; - let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst; + | _ => false + let newAlts := newAlts.map fun alt => alt.applyFVarSubst subst newAlts ← newAlts.mapM fun alt => match alt.patterns with | Pattern.arrayLit _ pats :: ps => pure { alt with patterns := pats ++ ps } - | Pattern.var fvarId :: ps => do α ← getArrayArgType x; expandVarIntoArrayLit { alt with patterns := ps } fvarId α size - | _ => unreachable!; + | Pattern.var fvarId :: ps => do let α ← getArrayArgType x; expandVarIntoArrayLit { alt with patterns := ps } fvarId α size + | _ => unreachable! pure { mvarId := subgoal.mvarId, vars := newVars, alts := newAlts, examples := examples } else do -- else branch - let newAlts := p.alts.filter isFirstPatternVar; + let newAlts := p.alts.filter isFirstPatternVar pure { p with mvarId := subgoal.mvarId, alts := newAlts, vars := x::xs } private def expandNatValuePattern (p : Problem) : Problem := do let alts := p.alts.map fun alt => match alt.patterns with | Pattern.val (Expr.lit (Literal.natVal 0) _) :: ps => { alt with patterns := Pattern.ctor `Nat.zero [] [] [] :: ps } | Pattern.val (Expr.lit (Literal.natVal (n+1)) _) :: ps => { alt with patterns := Pattern.ctor `Nat.succ [] [] [Pattern.val (mkNatLit n)] :: ps } - | _ => alt; + | _ => alt { p with alts := alts } private def traceStep (msg : String) : StateRefT State MetaM Unit := @@ -717,45 +707,45 @@ withGoalOf p (traceM `Meta.Match.match p.toMessageData) private def throwNonSupported (p : Problem) : MetaM Unit := withGoalOf p do - msg ← p.toMessageData; - throwError ("failed to compile pattern matching, stuck at" ++ (indentD msg)) + let msg ← p.toMessageData + throwError! "failed to compile pattern matching, stuck at{indentD msg}" def isCurrVarInductive (p : Problem) : MetaM Bool := do match p.vars with | [] => pure false | x::_ => withGoalOf p do - val? ← getInductiveVal? x; + let val? ← getInductiveVal? x pure val?.isSome private partial def process : Problem → StateRefT State MetaM Unit | p => withIncRecDepth do - liftM $ traceState p; - isInductive ← liftM $ isCurrVarInductive p; + liftM $ traceState p + let isInductive ← liftM $ isCurrVarInductive p if isDone p then processLeaf p else if hasAsPattern p then do - traceStep ("as-pattern"); - p ← liftM $ processAsPattern p; + traceStep ("as-pattern") + let p ← liftM $ processAsPattern p process p else if isNatValueTransition p then do - traceStep ("nat value to constructor"); + traceStep ("nat value to constructor") process (expandNatValuePattern p) else if !isNextVar p then do - traceStep ("non variable"); - p ← liftM $ processNonVariable p; + traceStep ("non variable") + let p ← liftM $ processNonVariable p process p else if isInductive && isConstructorTransition p then do - ps ← liftM $ processConstructor p; + let ps ← liftM $ processConstructor p ps.forM process else if isVariableTransition p then do - traceStep ("variable"); - p ← liftM $ processVariable p; + traceStep ("variable") + let p ← liftM $ processVariable p process p else if isValueTransition p then do - ps ← liftM $ processValue p; + let ps ← liftM $ processValue p ps.forM process else if isArrayLitTransition p then do - ps ← liftM $ processArrayLit p; + let ps ← liftM $ processArrayLit p ps.forM process else liftM $ throwNonSupported p @@ -829,36 +819,36 @@ where `v` is a universe parameter or 0 if `B[a_1, ..., a_n]` is a proposition. -/ def mkMatcher (matcherName : Name) (matchType : Expr) (numDiscrs : Nat) (lhss : List AltLHS) : MetaM MatcherResult := forallBoundedTelescope matchType numDiscrs fun majors matchTypeBody => do -checkNumPatterns majors lhss; +checkNumPatterns majors lhss /- We generate an matcher that can eliminate using different motives with different universe levels. `uElim` is the universe level the caller wants to eliminate to. If it is not levelZero, we create a matcher that can eliminate in any universe level. This is useful for implementing `MatcherApp.addArg` because it may have to change the universe level. -/ -uElim ← getLevel matchTypeBody; -uElimGen ← if uElim == levelZero then pure levelZero else mkFreshLevelMVar; -motiveType ← mkForallFVars majors (mkSort uElimGen); +let uElim ← getLevel matchTypeBody +let uElimGen ← if uElim == levelZero then pure levelZero else mkFreshLevelMVar +let motiveType ← mkForallFVars majors (mkSort uElimGen) withLocalDeclD `motive motiveType fun motive => do -trace! `Meta.Match.debug ("motiveType: " ++ motiveType); -let mvarType := mkAppN motive majors; -trace! `Meta.Match.debug ("target: " ++ mvarType); +trace! `Meta.Match.debug ("motiveType: " ++ motiveType) +let mvarType := mkAppN motive majors +trace! `Meta.Match.debug ("target: " ++ mvarType) withAlts motive lhss fun alts minors => do - mvar ← mkFreshExprMVar mvarType; - let examples := majors.toList.map fun major => Example.var major.fvarId!; - (_, s) ← (process { mvarId := mvar.mvarId!, vars := majors.toList, alts := alts, examples := examples }).run {}; - let args := #[motive] ++ majors ++ minors.map Prod.fst; - type ← mkForallFVars args mvarType; - val ← mkLambdaFVars args mvar; - trace! `Meta.Match.debug ("matcher value: " ++ val ++ "\ntype: " ++ type); - matcher ← mkAuxDefinition matcherName type val; - trace! `Meta.Match.debug ("matcher levels: " ++ toString matcher.getAppFn.constLevels! ++ ", uElim: " ++ toString uElimGen); - uElimPos? ← getUElimPos? matcher.getAppFn.constLevels! uElimGen; - isLevelDefEq uElimGen uElim; - addMatcherInfo matcherName { numParams := matcher.getAppNumArgs, numDiscrs := numDiscrs, altNumParams := minors.map Prod.snd, uElimPos? := uElimPos? }; - setInlineAttribute matcherName; - trace! `Meta.Match.debug ("matcher: " ++ matcher); + let mvar ← mkFreshExprMVar mvarType + let examples := majors.toList.map fun major => Example.var major.fvarId! + let (_, s) ← (process { mvarId := mvar.mvarId!, vars := majors.toList, alts := alts, examples := examples }).run {} + let args := #[motive] ++ majors ++ minors.map Prod.fst + let type ← mkForallFVars args mvarType + let val ← mkLambdaFVars args mvar + trace! `Meta.Match.debug ("matcher value: " ++ val ++ "\ntype: " ++ type) + let matcher ← mkAuxDefinition matcherName type val + trace! `Meta.Match.debug ("matcher levels: " ++ toString matcher.getAppFn.constLevels! ++ ", uElim: " ++ toString uElimGen) + let uElimPos? ← getUElimPos? matcher.getAppFn.constLevels! uElimGen + isLevelDefEq uElimGen uElim + addMatcherInfo matcherName { numParams := matcher.getAppNumArgs, numDiscrs := numDiscrs, altNumParams := minors.map Prod.snd, uElimPos? := uElimPos? } + setInlineAttribute matcherName + trace! `Meta.Match.debug ("matcher: " ++ matcher) let unusedAltIdxs : List Nat := lhss.length.fold (fun i r => if s.used.contains i then r else i::r) - []; + [] pure { matcher := matcher, counterExamples := s.counterExamples, unusedAltIdxs := unusedAltIdxs.reverse } end Match @@ -866,11 +856,11 @@ end Match export Match (MatcherInfo) def getMatcherInfo? (declName : Name) : MetaM (Option MatcherInfo) := do -env ← getEnv; +let env ← getEnv pure $ Match.Extension.getMatcherInfo? env declName def isMatcher (declName : Name) : MetaM Bool := do -info? ← getMatcherInfo? declName; +let info? ← getMatcherInfo? declName pure info?.isSome structure MatcherApp := @@ -887,8 +877,8 @@ structure MatcherApp := def matchMatcherApp? (e : Expr) : MetaM (Option MatcherApp) := match e.getAppFn with | Expr.const declName declLevels _ => do - some info ← getMatcherInfo? declName | pure none; - let args := e.getAppArgs; + let some info ← getMatcherInfo? declName | pure none + let args := e.getAppArgs if args.size < info.numParams + 1 + info.numDiscrs + info.numAlts then pure none else pure $ some { @@ -905,28 +895,27 @@ match e.getAppFn with | _ => pure none def MatcherApp.toExpr (matcherApp : MatcherApp) : Expr := -let result := mkAppN (mkConst matcherApp.matcherName matcherApp.matcherLevels.toList) matcherApp.params; -let result := mkApp result matcherApp.motive; -let result := mkAppN result matcherApp.discrs; -let result := mkAppN result matcherApp.alts; +let result := mkAppN (mkConst matcherApp.matcherName matcherApp.matcherLevels.toList) matcherApp.params +let result := mkApp result matcherApp.motive +let result := mkAppN result matcherApp.discrs +let result := mkAppN result matcherApp.alts mkAppN result matcherApp.remaining /- Auxiliary function for MatcherApp.addArg -/ private partial def updateAlts : Expr → Array Nat → Array Expr → Nat → MetaM (Array Nat × Array Expr) | typeNew, altNumParams, alts, i => if h : i < alts.size then do - let alt := alts.get ⟨i, h⟩; - let numParams := altNumParams.get! i; - typeNew ← whnfD typeNew; + let alt := alts.get ⟨i, h⟩ + let numParams := altNumParams.get! i + let typeNew ← whnfD typeNew match typeNew with | Expr.forallE n d b _ => do - alt ← forallBoundedTelescope d (some numParams) fun xs d => do { - alt ← catch (instantiateLambda alt xs) (fun _ => throwError "unexpected matcher application, insufficient number of parameters in alternative"); + let alt ← forallBoundedTelescope d (some numParams) fun xs d => do + let alt ← try instantiateLambda alt xs catch _ => throwError "unexpected matcher application, insufficient number of parameters in alternative" forallBoundedTelescope d (some 1) fun x d => do - alt ← mkLambdaFVars x alt; -- x is the new argument we are adding to the alternative - alt ← mkLambdaFVars xs alt; + let alt ← mkLambdaFVars x alt -- x is the new argument we are adding to the alternative + let alt ← mkLambdaFVars xs alt pure alt - }; updateAlts (b.instantiate1 alt) (altNumParams.set! i (numParams+1)) (alts.set ⟨i, h⟩ alt) (i+1) | _ => throwError "unexpected type at MatcherApp.addArg" else @@ -944,36 +933,35 @@ private partial def updateAlts : Expr → Array Nat → Array Expr → Nat → M -/ def MatcherApp.addArg (matcherApp : MatcherApp) (e : Expr) : MetaM MatcherApp := lambdaTelescope matcherApp.motive fun motiveArgs motiveBody => do - unless (motiveArgs.size == matcherApp.discrs.size) $ + unless motiveArgs.size == matcherApp.discrs.size do -- This error can only happen if someone implemented a transformation that rewrites the motive created by `mkMatcher`. - throwError ("unexpected matcher application, motive must be lambda expression with #" ++ toString matcherApp.discrs.size ++ " arguments"); - eType ← inferType e; - eTypeAbst ← matcherApp.discrs.size.foldRevM + throwError! "unexpected matcher application, motive must be lambda expression with #{matcherApp.discrs.size} arguments" + let eType ← inferType e + let eTypeAbst ← matcherApp.discrs.size.foldRevM (fun i eTypeAbst => do - let motiveArg := motiveArgs.get! i; - let discr := matcherApp.discrs.get! i; - eTypeAbst ← kabstract eTypeAbst discr; + let motiveArg := motiveArgs.get! i + let discr := matcherApp.discrs.get! i + eTypeAbst ← kabstract eTypeAbst discr pure $ eTypeAbst.instantiate1 motiveArg) - eType; - motiveBody ← mkArrow eTypeAbst motiveBody; - matcherLevels ← match matcherApp.uElimPos? with + eType + let motiveBody ← mkArrow eTypeAbst motiveBody + let matcherLevels ← match matcherApp.uElimPos? with | none => pure matcherApp.matcherLevels - | some pos => do { - uElim ← getLevel motiveBody; + | some pos => do + let uElim ← getLevel motiveBody pure $ matcherApp.matcherLevels.set! pos uElim - }; - motive ← mkLambdaFVars motiveArgs motiveBody; + let motive ← mkLambdaFVars motiveArgs motiveBody -- Construct `aux` `match_i As (fun xs => B[xs] → motive[xs]) discrs`, and infer its type `auxType`. -- We use `auxType` to infer the type `B[C_i[ys_i]]` of the new argument in each alternative. - let aux := mkAppN (mkConst matcherApp.matcherName matcherLevels.toList) matcherApp.params; - let aux := mkApp aux motive; - let aux := mkAppN aux matcherApp.discrs; - trace! `Meta.debug aux; - check aux; - unlessM (isTypeCorrect aux) $ - throwError "failed to add argument to matcher application, type error when constructing the new motive"; - auxType ← inferType aux; - (altNumParams, alts) ← updateAlts auxType matcherApp.altNumParams matcherApp.alts 0; + let aux := mkAppN (mkConst matcherApp.matcherName matcherLevels.toList) matcherApp.params + let aux := mkApp aux motive + let aux := mkAppN aux matcherApp.discrs + trace! `Meta.debug aux + check aux + unless (← isTypeCorrect aux) do + throwError "failed to add argument to matcher application, type error when constructing the new motive" + let auxType ← inferType aux + let (altNumParams, alts) ← updateAlts auxType matcherApp.altNumParams matcherApp.alts 0 pure { matcherApp with matcherLevels := matcherLevels, motive := motive, @@ -981,11 +969,9 @@ lambdaTelescope matcherApp.motive fun motiveArgs motiveBody => do altNumParams := altNumParams, remaining := #[e] ++ matcherApp.remaining } -@[init] private def regTraceClasses : IO Unit := do -registerTraceClass `Meta.Match.match; -registerTraceClass `Meta.Match.debug; -registerTraceClass `Meta.Match.unify; -pure () +initialize + registerTraceClass `Meta.Match.match + registerTraceClass `Meta.Match.debug + registerTraceClass `Meta.Match.unify -end Meta -end Lean +end Lean.Meta diff --git a/stage0/src/Lean/Meta/Match/MatchPatternAttr.lean b/stage0/src/Lean/Meta/Match/MatchPatternAttr.lean index 0db8032b63..107ba2c1ef 100644 --- a/stage0/src/Lean/Meta/Match/MatchPatternAttr.lean +++ b/stage0/src/Lean/Meta/Match/MatchPatternAttr.lean @@ -1,3 +1,4 @@ +#lang lean4 /- Copyright (c) 2019 Microsoft Corporation. All rights reserved. Released under Apache 2.0 license as described in the file LICENSE. @@ -7,12 +8,9 @@ import Lean.Attributes namespace Lean -def mkMatchPatternAttr : IO TagAttribute := +initialize matchPatternAttr : TagAttribute ← registerTagAttribute `matchPattern "mark that a definition can be used in a pattern (remark: the dependent pattern matching compiler will unfold the definition)" -@[init mkMatchPatternAttr] -constant matchPatternAttr : TagAttribute := arbitrary _ - @[export lean_has_match_pattern_attribute] def hasMatchPatternAttribute (env : Environment) (n : Name) : Bool := matchPatternAttr.hasTag env n diff --git a/stage0/stdlib/Lean/Elab/Declaration.c b/stage0/stdlib/Lean/Elab/Declaration.c index 42a3c1ec2f..499f3d79ad 100644 --- a/stage0/stdlib/Lean/Elab/Declaration.c +++ b/stage0/stdlib/Lean/Elab/Declaration.c @@ -243,7 +243,6 @@ extern lean_object* l_Lean_nullKind___closed__2; lean_object* l_Lean_Elab_Command_expandInitialize___closed__19; lean_object* l_Lean_Elab_Command_expandMutualElement(lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Elab_Command_expandMutualElement(lean_object*); -extern lean_object* l___private_Lean_Meta_Match_Match_40__process___main___closed__1; lean_object* l_Lean_Elab_Command_expandInitialize___closed__36; lean_object* l_Lean_Elab_Term_resetMessageLog(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_expandMutualPreamble___closed__2; @@ -338,6 +337,7 @@ lean_object* l_Lean_Elab_Command_elabAttr(lean_object*, lean_object*, lean_objec lean_object* l_Lean_Elab_Command_expandInitialize___closed__20; lean_object* l_Lean_Elab_Command_elabDeclaration___closed__1; lean_object* l_Lean_Elab_Command_expandDeclIdNamespace_x3f_match__2(lean_object*); +extern lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1; lean_object* l_Lean_resolveGlobalConstNoOverload___at_Lean_Elab_Command_elabAttr___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_elabDeclaration___closed__3; lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Command_expandMutualNamespace___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*); @@ -3955,7 +3955,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Elab_elabModifiers___rarg___lambda__3___closed__2; -x_2 = l___private_Lean_Meta_Match_Match_40__process___main___closed__1; +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } diff --git a/stage0/stdlib/Lean/Elab/Do.c b/stage0/stdlib/Lean/Elab/Do.c index 5afe612771..bd59a8cbad 100644 --- a/stage0/stdlib/Lean/Elab/Do.c +++ b/stage0/stdlib/Lean/Elab/Do.c @@ -136,7 +136,6 @@ lean_object* l_Lean_Elab_Term_Do_ToTerm_actionTerminalToTermCore___closed__11; lean_object* l_Lean_Elab_Term_Do_extendUpdatedVarsAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToTerm_run(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToTerm_continueToTermCore___closed__23; -extern lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3; lean_object* l_Lean_Elab_Term_Do_ToTerm_matchNestedTermResult___closed__39; uint8_t l_Lean_Elab_Term_Do_hasTerminalAction(lean_object*); lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -333,6 +332,7 @@ lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___closed__11; lean_object* l_Lean_Elab_Term_Do_ToTerm_actionTerminalToTermCore___closed__13; extern lean_object* l___regBuiltin_Lean_Elab_Tactic_evalDone___closed__1; lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__8; lean_object* l_Std_RBNode_setBlack___rarg(lean_object*); lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___lambda__4___closed__1; lean_object* l_Lean_Elab_Term_Do_getLetDeclVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -341,7 +341,6 @@ lean_object* l_Lean_Elab_Term_Do_ToTerm_breakToTermCore___closed__21; lean_object* l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_checkReassignable___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_concat_match__2___rarg(lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Do_convertTerminalActionIntoJmp_loop___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; lean_object* l_Lean_Elab_Term_elabTermEnsuringType(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_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_CodeBlocl_toMessageData_loop___closed__9; @@ -359,6 +358,7 @@ uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_ensureInsideFor___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_CodeBlocl_toMessageData_loop___closed__4; lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___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*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3; lean_object* l_Lean_Elab_Term_Do_ToTerm_breakToTermCore_match__1___rarg(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Do_mkDoSeq___spec__1(lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___spec__1___closed__5; @@ -368,7 +368,6 @@ lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___lambda__4(lean_object lean_object* l_Lean_Elab_Term_Do_attachJPs(lean_object*, lean_object*); extern lean_object* l_Std_Range_myMacro____x40_Init_Data_Range___hyg_301____closed__5; lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doReturnToCode(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_Elab_Term_elabLetDeclAux___closed__4; lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doReassignArrowToCode___closed__2; lean_object* l_Lean_Elab_Term_Do_ToTerm_declToTerm(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); @@ -742,7 +741,6 @@ lean_object* l_Lean_Elab_Term_Do_ToTerm_seqToTermCore___closed__1; lean_object* l_Lean_Elab_Term_Do_ToTerm_reassignToTerm(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isMVar(lean_object*); lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___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_caseValueAux___lambda__5___closed__8; lean_object* l_Lean_Elab_Term_Do_ToTerm_mkUVarTuple(lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_464____closed__10; lean_object* l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkMonadAlias___closed__2; @@ -899,6 +897,7 @@ lean_object* l_Lean_Elab_Term_Do_getLetPatDeclVars(lean_object*, lean_object*, l lean_object* l_Lean_Elab_throwUnsupportedSyntax___at_Lean_Elab_Term_Do_ToCodeBlock_mkForInBody___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_Elab_Term_Do_mkReassignCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_getLetDeclVars___closed__1; +extern lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; lean_object* l_Lean_Elab_Term_Do_getLetDeclVars___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToTerm_breakToTerm___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_Do_ToTerm_declToTermCore_match__1___rarg(lean_object*, lean_object*, lean_object*); @@ -1007,6 +1006,7 @@ lean_object* l_Lean_Elab_Term_Do_ToTerm_breakToTermCore___boxed(lean_object*, le lean_object* l_Lean_Elab_Term_Do_ToTerm_returnToTermCore_match__1(lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___spec__1___closed__11; extern lean_object* l___regBuiltin_Lean_Elab_Term_elabSyntheticHole___closed__2; +extern lean_object* l_Lean_Meta_Match_Unify_assign___closed__6; extern lean_object* l_Lean_Elab_Term_expandFunBinders_loop___closed__8; lean_object* l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_myMacro____x40_Init_Data_ToString_Macro___hyg_39____closed__8; @@ -2925,7 +2925,7 @@ lean_dec(x_37); x_39 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_39, 0, x_33); lean_ctor_set(x_39, 1, x_38); -x_40 = l_Lean_Elab_Term_elabLetDeclAux___closed__4; +x_40 = l_Lean_Meta_Match_Unify_assign___closed__6; x_41 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_41, 0, x_39); lean_ctor_set(x_41, 1, x_40); @@ -25023,7 +25023,7 @@ lean_ctor_set(x_19, 0, x_12); lean_ctor_set(x_19, 1, x_18); x_20 = l_ULift_HasRepr___rarg___closed__2; x_21 = l_Lean_mkAtomFrom(x_1, x_20); -x_22 = l_Lean_Meta_caseValueAux___lambda__5___closed__8; +x_22 = l_Lean_Meta_caseValueAux___lambda__4___closed__8; x_23 = lean_array_push(x_22, x_15); x_24 = lean_array_push(x_23, x_19); x_25 = lean_array_push(x_24, x_13); @@ -25888,7 +25888,7 @@ lean_dec(x_10); x_20 = l_Lean_myMacro____x40_Lean_Util_Trace___hyg_45____closed__16; x_21 = l_Lean_mkAtomFrom(x_11, x_20); lean_dec(x_11); -x_22 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3; +x_22 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3; x_23 = lean_array_push(x_22, x_19); x_24 = lean_array_push(x_23, x_21); x_25 = lean_array_push(x_24, x_17); @@ -25939,7 +25939,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_mkAppStx___closed__6; -x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; +x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } @@ -26385,12 +26385,12 @@ x_113 = l_Lean_Elab_Term_expandFunBinders_loop___closed__11; x_114 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_114, 0, x_113); lean_ctor_set(x_114, 1, x_112); -x_115 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; +x_115 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; x_116 = l_Lean_mkAtomFrom(x_87, x_115); x_117 = l_Lean_Elab_Term_expandFunBinders_loop___closed__8; x_118 = l_Lean_mkAtomFrom(x_87, x_117); lean_dec(x_87); -x_119 = l_Lean_Meta_caseValueAux___lambda__5___closed__8; +x_119 = l_Lean_Meta_caseValueAux___lambda__4___closed__8; x_120 = lean_array_push(x_119, x_116); x_121 = lean_array_push(x_120, x_88); x_122 = lean_array_push(x_121, x_89); @@ -26435,12 +26435,12 @@ x_144 = l_Lean_Elab_Term_expandFunBinders_loop___closed__11; x_145 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_145, 0, x_144); lean_ctor_set(x_145, 1, x_143); -x_146 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; +x_146 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; x_147 = l_Lean_mkAtomFrom(x_87, x_146); x_148 = l_Lean_Elab_Term_expandFunBinders_loop___closed__8; x_149 = l_Lean_mkAtomFrom(x_87, x_148); lean_dec(x_87); -x_150 = l_Lean_Meta_caseValueAux___lambda__5___closed__8; +x_150 = l_Lean_Meta_caseValueAux___lambda__4___closed__8; x_151 = lean_array_push(x_150, x_147); x_152 = lean_array_push(x_151, x_88); x_153 = lean_array_push(x_152, x_89); @@ -27119,7 +27119,7 @@ _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_SourceInfo_inhabited___closed__1; -x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; +x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; x_3 = lean_alloc_ctor(2, 2, 0); lean_ctor_set(x_3, 0, x_1); lean_ctor_set(x_3, 1, x_2); diff --git a/stage0/stdlib/Lean/Elab/MutualDef.c b/stage0/stdlib/Lean/Elab/MutualDef.c index e706480f2a..df22b9d720 100644 --- a/stage0/stdlib/Lean/Elab/MutualDef.c +++ b/stage0/stdlib/Lean/Elab/MutualDef.c @@ -383,7 +383,6 @@ lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_checkModifiers___ lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_MutualClosure_main___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getLocalDecl___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkClosureForAux___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_mod(size_t, size_t); -extern lean_object* l_Lean_Elab_elabAttr___rarg___lambda__3___closed__3; lean_object* l_Lean_Elab_Term_MutualClosure_ClosureState_localDecls___default; lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_FixPoint_getUsedFVarsMap(lean_object*); lean_object* l_List_foldl___main___at_Lean_Elab_Term_MutualClosure_pushLetRecs___spec__1(uint8_t, lean_object*, lean_object*, lean_object*); @@ -482,6 +481,7 @@ lean_object* l_Lean_Elab_elabModifiers___at_Lean_Elab_Command_elabMutualDef___sp lean_object* l_Lean_Elab_Term_elabMutualDef___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_List_forInAux___main___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkFreeVarMap___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_expr_update_lambda(lean_object*, uint8_t, lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__6; lean_object* l_Lean_Meta_getZetaFVarIds___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_mkClosureForAux___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_FindImpl_findM_x3f___main___at___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_typeHasRecFun___spec__2(lean_object*, lean_object*, size_t, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_MutualDef_0__Lean_Elab_Term_MutualClosure_FixPoint_isModified___rarg(lean_object*); @@ -14771,7 +14771,7 @@ x_12 = l_Lean_Elab_elabAttr___rarg___lambda__3___closed__2; x_13 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_13, 0, x_12); lean_ctor_set(x_13, 1, x_11); -x_14 = l_Lean_Elab_elabAttr___rarg___lambda__3___closed__3; +x_14 = l_Lean_Meta_Match_Pattern_toMessageData___closed__6; x_15 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_15, 0, x_13); lean_ctor_set(x_15, 1, x_14); diff --git a/stage0/stdlib/Lean/Elab/PreDefinition/Structural.c b/stage0/stdlib/Lean/Elab/PreDefinition/Structural.c index db550f8b9b..13efc8e0b7 100644 --- a/stage0/stdlib/Lean/Elab/PreDefinition/Structural.c +++ b/stage0/stdlib/Lean/Elab/PreDefinition/Structural.c @@ -15,6 +15,7 @@ extern "C" { #endif lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_fmt___at_Lean_Position_Lean_HasFormat___spec__1(lean_object*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2; extern lean_object* l_Lean_Meta_binductionOnSuffix; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___lambda__3___closed__3; lean_object* lean_array_set(lean_object*, lean_object*, lean_object*); @@ -47,7 +48,6 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRec lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop_match__3(lean_object*); lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_FunInfo_3__collectDepsAux___main___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_x3f_match__1(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___lambda__1(lean_object*); lean_object* l_Array_umapMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___spec__3___closed__3; @@ -64,12 +64,11 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_ensureN lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__16; lean_object* lean_array_fswap(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_inferType___at___private_Lean_Elab_PreDefinition_MkInhabitant_0__Lean_Elab_findAssumption_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1; lean_object* l_Array_extract___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop_match__1___rarg(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_elimRecursion___lambda__2___closed__2; lean_object* l_Array_filterAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; extern lean_object* l_Array_empty___closed__1; lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__3___lambda__2___closed__1; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadParamDep_x3f_match__1(lean_object*); @@ -126,6 +125,7 @@ lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_Elab_Term_throwTypeMismatchError___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___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_Elab_structuralRecursion___closed__1; +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___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*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__8; lean_object* l_Lean_ForEachExpr_visit___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_getFixedPrefix___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__3___closed__1; @@ -134,12 +134,11 @@ lean_object* l_Lean_Elab_structuralRecursion___boxed(lean_object*, lean_object*, lean_object* l_Lean_mkMData(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__9; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___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*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___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* l_Lean_Expr_getAppNumArgsAux___main(lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__3___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_getFixedPrefix_match__1(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__4; -lean_object* l_Lean_Meta_whnfD___at_Lean_Meta_getInductiveUniverseAndParams___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_decLevel___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_getIndexMinPos_match__1___boxed(lean_object*, lean_object*); @@ -155,6 +154,7 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelow uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_anyRangeMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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*); lean_object* lean_st_ref_take(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadParamDep_x3f_match__4___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__6___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -196,20 +196,23 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelow lean_object* l_Lean_Elab_structuralRecursion___closed__3; lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_getIndexMinPos___spec__1(lean_object*, lean_object*, size_t, size_t, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__5; +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2; lean_object* l_Lean_throwError___at_Lean_Elab_mkInhabitantFor___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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* l_Array_umapMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__8___lambda__2___closed__8; lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_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* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__14; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__15; +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1; lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_throwToBelowFailed___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__5(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_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___rarg___closed__6; +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___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* l_Lean_Meta_withLocalDecl___at_Lean_Meta_forallTelescopeCompatibleAux___spec__4___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_forEachExpr_x27___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_ensureNoRecFn___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1(lean_object*); lean_object* lean_name_mk_string(lean_object*, lean_object*); lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__3___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -230,11 +233,10 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelow lean_object* l_Array_umapMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__8___lambda__2___closed__1; lean_object* l___private_Lean_CoreM_1__mkFreshNameImp(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_x3f___closed__1; -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop_match__2(lean_object*); uint8_t l___private_Init_Data_Array_Basic_9__allDiffAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___spec__4(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1; +lean_object* l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_ensureNoRecFn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_initFn____x40_Lean_Elab_PreDefinition_Structural___hyg_3364_(lean_object*); uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*); @@ -253,7 +255,6 @@ size_t lean_usize_of_nat(lean_object*); lean_object* l___private_Lean_Meta_LevelDefEq_2__decLevelImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___lambda__3___closed__2; lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Basic_21__forallBoundedTelescopeImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__6; lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___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*); @@ -262,7 +263,6 @@ lean_object* l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(lean_ob lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___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* l_Array_umapMAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop___spec__8___lambda__2___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___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_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__4; size_t l_USize_mod(size_t, size_t); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___lambda__3___closed__4; @@ -294,9 +294,8 @@ lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_PreDefinition_Str lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___lambda__2___boxed(lean_object*, lean_object*, 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_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_elimRecursion___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_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop_match__2___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1(lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop_match__1(lean_object*); lean_object* l_Lean_mkApp(lean_object*, lean_object*); @@ -335,7 +334,6 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_throwTo lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadParamDep_x3f_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Array_toList___rarg(lean_object*); extern lean_object* l_Lean_Expr_Inhabited; -lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkAppM___at___private_Lean_Elab_PreDefinition_MkInhabitant_0__Lean_Elab_mkInhabitant_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadParamDep_x3f___spec__1___lambda__1(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); @@ -348,17 +346,17 @@ lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_elimRec extern lean_object* l_Lean_Meta_decLevel___rarg___lambda__1___closed__3; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_ensureNoRecFn___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_HashMapImp_find_x3f___at_Lean_Meta_ForEachExpr_visit___main___spec__10(lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_replaceRecApps_loop_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___lambda__3(lean_object*, lean_object*, 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* l_Lean_indentD(lean_object*); lean_object* l_Lean_Expr_FindImpl_findM_x3f___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_containsRecFn___spec__1(lean_object*, size_t, lean_object*, lean_object*); +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___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* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___lambda__3___closed__5; extern lean_object* l_Lean_mkOptionalNode___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux_match__2___rarg___closed__2; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadParamDep_x3f_match__3(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_getFixedPrefix_match__1___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2(lean_object*); lean_object* l_Lean_hasConst___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_MessageData_hasCoeOfListExpr___spec__1(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_x3f_match__1___rarg(lean_object*, lean_object*); @@ -366,7 +364,6 @@ extern lean_object* l_Nat_Inhabited; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop_match__2(lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_mkBRecOn___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___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_ensureNoRecFn___lambda__1___closed__2; @@ -403,6 +400,7 @@ uint8_t lean_string_dec_eq(lean_object*, lean_object*); uint8_t l_Lean_LocalDecl_isLet(lean_object*); lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux_match__3(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +extern lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; lean_object* l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_findRecArg_loop_match__1___boxed(lean_object*, lean_object*); lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_hasBadIndexDep_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*); extern lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_elabTermAux___closed__1; @@ -3810,7 +3808,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_19 = l_Lean_Meta_whnfD___at_Lean_Meta_getInductiveUniverseAndParams___spec__1(x_18, x_5, x_6, x_7, x_8, x_16); +x_19 = l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(x_18, x_5, x_6, x_7, x_8, x_16); if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_object* x_21; lean_object* x_22; @@ -7582,66 +7580,7 @@ lean_dec(x_3); return x_11; } } -lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___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; -x_9 = l___private_Lean_Meta_Basic_21__forallBoundedTelescopeImp___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_9) == 0) -{ -uint8_t x_10; -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; -} -} -else -{ -uint8_t x_14; -x_14 = !lean_is_exclusive(x_9); -if (x_14 == 0) -{ -return x_9; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -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_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_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg), 8, 0); -return x_2; -} -} -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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) { _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; @@ -7656,7 +7595,7 @@ x_16 = lean_apply_7(x_4, x_5, x_15, x_6, x_7, x_8, x_9, x_10); return x_16; } } -static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1() { +static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -7664,17 +7603,17 @@ x_1 = lean_mk_string("C"); return x_1; } } -static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2() { +static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1; +x_2 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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, 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; @@ -7694,14 +7633,14 @@ lean_inc(x_16); x_17 = lean_ctor_get(x_15, 1); lean_inc(x_17); lean_dec(x_15); -x_18 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2; +x_18 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2; x_19 = l___private_Lean_CoreM_1__mkFreshNameImp(x_18, x_9, x_10, 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_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__1), 10, 4); +x_22 = lean_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__1), 10, 4); lean_closure_set(x_22, 0, x_1); lean_closure_set(x_22, 1, x_2); lean_closure_set(x_22, 2, x_3); @@ -7742,7 +7681,7 @@ return x_28; } } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___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) { _start: { lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; @@ -7765,13 +7704,13 @@ lean_inc(x_16); x_17 = lean_ctor_get(x_15, 1); lean_inc(x_17); lean_dec(x_15); -x_18 = lean_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___boxed), 11, 4); +x_18 = lean_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___boxed), 11, 4); lean_closure_set(x_18, 0, x_14); lean_closure_set(x_18, 1, x_1); lean_closure_set(x_18, 2, x_4); lean_closure_set(x_18, 3, x_5); -x_19 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; -x_20 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(x_16, x_19, x_18, x_7, x_8, x_9, x_10, x_17); +x_19 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; +x_20 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_16, x_19, x_18, x_7, x_8, x_9, x_10, x_17); return x_20; } else @@ -7806,7 +7745,7 @@ return x_24; } } } -static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1() { +static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1() { _start: { lean_object* x_1; @@ -7814,16 +7753,16 @@ x_1 = lean_mk_string("unexpected 'below' type"); return x_1; } } -static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2() { +static lean_object* _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1; +x_1 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1; x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___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, lean_object* x_11) { +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___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, lean_object* x_11) { _start: { if (lean_obj_tag(x_4) == 5) @@ -7861,7 +7800,7 @@ lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); x_22 = l_Lean_indentExpr(x_3); -x_23 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2; +x_23 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2; x_24 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_24, 0, x_23); lean_ctor_set(x_24, 1, x_22); @@ -7898,17 +7837,17 @@ else lean_object* x_32; lean_object* x_33; lean_dec(x_3); x_32 = lean_box(0); -x_33 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__3(x_5, x_1, x_4, x_19, x_2, x_32, x_7, x_8, x_9, x_10, x_11); +x_33 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__3(x_5, x_1, x_4, x_19, x_2, x_32, x_7, x_8, x_9, x_10, x_11); return x_33; } } } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2(lean_object* x_1) { +lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg), 11, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg), 11, 0); return x_2; } } @@ -7996,7 +7935,7 @@ x_17 = lean_unsigned_to_nat(1u); x_18 = lean_nat_sub(x_14, x_17); lean_dec(x_14); lean_inc(x_10); -x_19 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg(x_2, x_3, x_10, x_10, x_16, x_18, x_4, x_5, x_6, x_7, x_12); +x_19 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(x_2, x_3, x_10, x_10, x_16, x_18, x_4, x_5, x_6, x_7, x_12); return x_19; } block_31: @@ -8068,21 +8007,21 @@ x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_PreDefinition_Structural_ return x_2; } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___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) { _start: { lean_object* x_12; -x_12 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___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); return x_12; } } -lean_object* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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* l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___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) { _start: { lean_object* x_12; -x_12 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___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 = l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__3(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); return x_12; } @@ -11576,7 +11515,7 @@ lean_closure_set(x_28, 5, x_2); lean_closure_set(x_28, 6, x_5); lean_closure_set(x_28, 7, x_6); lean_closure_set(x_28, 8, x_7); -x_29 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(x_19, x_27, x_28, x_10, x_11, x_12, x_13, x_20); +x_29 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_19, x_27, x_28, x_10, x_11, x_12, x_13, x_20); return x_29; } else @@ -11845,8 +11784,8 @@ lean_closure_set(x_36, 3, x_2); lean_closure_set(x_36, 4, x_6); lean_closure_set(x_36, 5, x_1); lean_closure_set(x_36, 6, x_28); -x_37 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; -x_38 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(x_32, x_37, x_36, x_11, x_12, x_13, x_14, x_35); +x_37 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; +x_38 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_32, x_37, x_36, x_11, x_12, x_13, x_14, x_35); return x_38; } else @@ -11875,8 +11814,8 @@ lean_closure_set(x_46, 3, x_2); lean_closure_set(x_46, 4, x_6); lean_closure_set(x_46, 5, x_1); lean_closure_set(x_46, 6, x_28); -x_47 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; -x_48 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg(x_32, x_47, x_46, x_11, x_12, x_13, x_14, x_45); +x_47 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; +x_48 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_32, x_47, x_46, x_11, x_12, x_13, x_14, x_45); return x_48; } } @@ -13380,14 +13319,14 @@ l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed_ lean_mark_persistent(l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__15); l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__16 = _init_l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__16(); lean_mark_persistent(l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_toBelowAux___closed__16); -l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__1); -l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___lambda__2___closed__2); -l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1(); -lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__1); -l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2(); -lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__2___rarg___closed__2); +l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__1); +l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___lambda__2___closed__2); +l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1(); +lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__1); +l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2 = _init_l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2(); +lean_mark_persistent(l_Lean_Expr_withAppAux___main___at___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___spec__1___rarg___closed__2); l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___rarg___closed__1 = _init_l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___rarg___closed__1(); lean_mark_persistent(l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___rarg___closed__1); l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___rarg___closed__2 = _init_l___private_Lean_Elab_PreDefinition_Structural_0__Lean_Elab_withBelowDict___rarg___closed__2(); diff --git a/stage0/stdlib/Lean/Meta/Match.c b/stage0/stdlib/Lean/Meta/Match.c index 1361f5ef93..abc478172b 100644 --- a/stage0/stdlib/Lean/Meta/Match.c +++ b/stage0/stdlib/Lean/Meta/Match.c @@ -14,13 +14,13 @@ extern "C" { #endif lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); +extern lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; lean_object* l___private_Lean_Meta_Match_1__regTraceClasses(lean_object*); -extern lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2; lean_object* l___private_Lean_Meta_Match_1__regTraceClasses(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2; +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; x_3 = l_Lean_registerTraceClass(x_2, x_1); return x_3; } diff --git a/stage0/stdlib/Lean/Meta/Match/CaseArraySizes.c b/stage0/stdlib/Lean/Meta/Match/CaseArraySizes.c index d31e62451e..2c1bcb43bc 100644 --- a/stage0/stdlib/Lean/Meta/Match/CaseArraySizes.c +++ b/stage0/stdlib/Lean/Meta/Match/CaseArraySizes.c @@ -13,101 +13,162 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_Meta_CaseArraySizesSubgoal_subst___default; lean_object* l_Lean_Expr_mvarId_x21(lean_object*); +lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* l_Lean_Meta_caseArraySizes___closed__2; +lean_object* l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__3(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_mkAppM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_mkAppM___at_Lean_Meta_mkDecideProof___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_withIncRecDepth___rarg___lambda__2___closed__2; lean_object* l_Lean_Meta_caseArraySizes___closed__3; -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3; +lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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* l___private_Lean_Util_Trace_4__addNode___at_Lean_Meta_isLevelDefEq___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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_Meta_assignExprMVar___at_Lean_Meta_admit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_CaseArraySizesSubgoal_diseqs___default; extern lean_object* l_Array_empty___closed__1; extern lean_object* l_Lean_Array_hasQuote___rarg___closed__2; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_3__introArrayLit(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_getMVarTag(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__4___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_st_ref_get(lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_mkAppM___rarg___closed__2; lean_object* l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_AppBuilder_20__mkFun___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__6___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_CaseArraySizesSubgoal_elems___default; extern lean_object* l_Lean_Literal_type___closed__3; lean_object* lean_array_push(lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main(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_Name_inhabited; +lean_object* l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2; lean_object* l_Lean_Expr_appArg_x21(lean_object*); -lean_object* l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkEqSymm___at_Lean_Meta_caseArraySizes___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1; +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop(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_nat_add(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_AppBuilder_10__mkEqSymmImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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*); extern lean_object* l_Lean_Meta_mkDecideProof___rarg___lambda__1___closed__2; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___lambda__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_addMessageContextFull___at_Lean_Meta_Lean_AddMessageContext___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_intro1Core(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_mkDecideProof___rarg___closed__2; lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Meta_substCore(lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t lean_nat_dec_eq(lean_object*, lean_object*); lean_object* l_Lean_Meta_getMVarType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3; +lean_object* l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__1(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* l_Lean_Meta_caseArraySizes_match__1___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__5___rarg(lean_object*, lean_object*); +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getArrayArgType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___spec__1(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_Meta_getArrayArgType___closed__3; extern lean_object* l_Lean_Meta_caseValue___closed__2; lean_object* l___private_Lean_Meta_AppBuilder_2__mkExpectedTypeHint(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getArrayArgType___closed__1; lean_object* l_Lean_Expr_fvarId_x21(lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5; lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_clear(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Name_appendIndexAfter(lean_object*, lean_object*); lean_object* l_Lean_Meta_getArrayArgType___closed__2; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5; +lean_object* l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_inferTypeRef; lean_object* lean_name_mk_string(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___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*, lean_object*); +lean_object* l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_mkLt___rarg___closed__4; lean_object* l_Lean_Meta_introNCore(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkEqSymm___at_Lean_Meta_substCore___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__2___rarg(lean_object*, lean_object*); lean_object* l_Lean_mkFVar(lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___lambda__1___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_isAppOfArity___main(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2; +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_match__1(lean_object*); +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3(lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___lambda__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_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; extern lean_object* l_Lean_boolToExpr___lambda__1___closed__6; lean_object* l_Lean_Meta_CaseArraySizesSubgoal_inhabited; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1; -lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_FVarSubst_get(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1; +lean_object* l_Lean_Meta_getArrayArgType___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2; lean_object* l_Lean_Meta_assertExt(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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* l_Lean_Meta_caseArraySizes_match__6(lean_object*); +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_464____closed__24; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4; lean_object* l_Lean_mkApp(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__2(lean_object*); +lean_object* l_Lean_Meta_whnf___at_Lean_Meta_introNCore___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__2(lean_object*, lean_object*, lean_object*); extern lean_object* l_Std_PersistentHashMap_mkCollisionNode___rarg___closed__1; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2; -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux(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_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__4___rarg(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1; +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4; lean_object* l_Lean_Meta_getDecLevel___at___private_Lean_Meta_AppBuilder_27__mkListLitImp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__3(lean_object*); +lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit(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_caseValues(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseArraySizes___closed__1; extern lean_object* l_Lean_mkAppStx___closed__9; lean_object* l___private_Lean_Meta_AppBuilder_3__mkEqImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_assignExprMVar___at___private_Lean_Meta_InferType_4__getLevelImp___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_toList___rarg(lean_object*); +lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_isLevelDefEq___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_getArrayArgType___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__1(lean_object*); lean_object* l___private_Lean_Meta_AppBuilder_5__mkEqReflImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkOptionalNode___closed__2; -lean_object* l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkNatLit(lean_object*); lean_object* l_Lean_Meta_mkFreshExprSyntheticOpaqueMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1; lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_AppBuilder_27__mkListLitImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_throwTacticEx___rarg___closed__6; +lean_object* l___private_Lean_Util_Trace_5__getResetTraces___at_Lean_Meta_isLevelDefEq___spec__4___rarg(lean_object*, lean_object*); lean_object* l_Lean_indentExpr(lean_object*); lean_object* l_Lean_mkConst(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__4(lean_object*); lean_object* l_Lean_Meta_caseArraySizes(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_caseArraySizes_match__3___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseArraySizes_match__5(lean_object*); +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_match__1___rarg(lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +static lean_object* _init_l_Lean_Meta_CaseArraySizesSubgoal_elems___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Array_empty___closed__1; +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_CaseArraySizesSubgoal_diseqs___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Array_empty___closed__1; +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_CaseArraySizesSubgoal_subst___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} static lean_object* _init_l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1() { _start: { @@ -131,6 +192,390 @@ x_1 = l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1; return x_1; } } +lean_object* l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___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; lean_object* x_10; uint8_t x_11; +x_7 = lean_ctor_get(x_4, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_4, 1); +lean_inc(x_8); +x_9 = lean_ctor_get(x_4, 2); +lean_inc(x_9); +x_10 = lean_ctor_get(x_4, 3); +lean_inc(x_10); +x_11 = lean_nat_dec_eq(x_8, x_9); +if (x_11 == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_4); +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; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_13 = lean_ctor_get(x_4, 3); +lean_dec(x_13); +x_14 = lean_ctor_get(x_4, 2); +lean_dec(x_14); +x_15 = lean_ctor_get(x_4, 1); +lean_dec(x_15); +x_16 = lean_ctor_get(x_4, 0); +lean_dec(x_16); +x_17 = lean_unsigned_to_nat(1u); +x_18 = lean_nat_add(x_8, x_17); +lean_dec(x_8); +lean_ctor_set(x_4, 1, x_18); +x_19 = l_Lean_Meta_inferTypeRef; +x_20 = lean_st_ref_get(x_19, x_6); +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_apply_6(x_21, x_1, x_2, x_3, x_4, x_5, 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; lean_object* x_31; +lean_dec(x_4); +x_24 = lean_unsigned_to_nat(1u); +x_25 = lean_nat_add(x_8, x_24); +lean_dec(x_8); +x_26 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_26, 0, x_7); +lean_ctor_set(x_26, 1, x_25); +lean_ctor_set(x_26, 2, x_9); +lean_ctor_set(x_26, 3, x_10); +x_27 = l_Lean_Meta_inferTypeRef; +x_28 = lean_st_ref_get(x_27, x_6); +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_apply_6(x_29, x_1, x_2, x_3, x_26, x_5, x_30); +return x_31; +} +} +else +{ +lean_object* x_32; lean_object* x_33; uint8_t x_34; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_1); +x_32 = l_Lean_withIncRecDepth___rarg___lambda__2___closed__2; +x_33 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_32, 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); +x_34 = !lean_is_exclusive(x_33); +if (x_34 == 0) +{ +return x_33; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_33, 0); +x_36 = lean_ctor_get(x_33, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_33); +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; +} +} +} +} +lean_object* l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___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: +{ +uint8_t x_7; +x_7 = !lean_is_exclusive(x_2); +if (x_7 == 0) +{ +lean_object* x_8; uint8_t x_9; +x_8 = lean_ctor_get(x_2, 0); +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +uint8_t x_10; lean_object* x_11; +x_10 = 1; +lean_ctor_set_uint8(x_8, 5, x_10); +x_11 = l_Lean_Meta_whnf___at_Lean_Meta_introNCore___spec__4(x_1, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +return x_11; +} +else +{ +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_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; +} +} +else +{ +uint8_t x_16; +x_16 = !lean_is_exclusive(x_11); +if (x_16 == 0) +{ +return x_11; +} +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); +return x_19; +} +} +} +else +{ +uint8_t x_20; uint8_t x_21; uint8_t x_22; uint8_t x_23; uint8_t x_24; uint8_t x_25; uint8_t x_26; uint8_t x_27; lean_object* x_28; lean_object* x_29; +x_20 = lean_ctor_get_uint8(x_8, 0); +x_21 = lean_ctor_get_uint8(x_8, 1); +x_22 = lean_ctor_get_uint8(x_8, 2); +x_23 = lean_ctor_get_uint8(x_8, 3); +x_24 = lean_ctor_get_uint8(x_8, 4); +x_25 = lean_ctor_get_uint8(x_8, 6); +x_26 = lean_ctor_get_uint8(x_8, 7); +lean_dec(x_8); +x_27 = 1; +x_28 = lean_alloc_ctor(0, 0, 8); +lean_ctor_set_uint8(x_28, 0, x_20); +lean_ctor_set_uint8(x_28, 1, x_21); +lean_ctor_set_uint8(x_28, 2, x_22); +lean_ctor_set_uint8(x_28, 3, x_23); +lean_ctor_set_uint8(x_28, 4, x_24); +lean_ctor_set_uint8(x_28, 5, x_27); +lean_ctor_set_uint8(x_28, 6, x_25); +lean_ctor_set_uint8(x_28, 7, x_26); +lean_ctor_set(x_2, 0, x_28); +x_29 = l_Lean_Meta_whnf___at_Lean_Meta_introNCore___spec__4(x_1, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_29) == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; +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); +} +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_30); +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; +x_34 = lean_ctor_get(x_29, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_29, 1); +lean_inc(x_35); +if (lean_is_exclusive(x_29)) { + lean_ctor_release(x_29, 0); + lean_ctor_release(x_29, 1); + x_36 = x_29; +} else { + lean_dec_ref(x_29); + x_36 = lean_box(0); +} +if (lean_is_scalar(x_36)) { + x_37 = lean_alloc_ctor(1, 2, 0); +} else { + x_37 = x_36; +} +lean_ctor_set(x_37, 0, x_34); +lean_ctor_set(x_37, 1, x_35); +return x_37; +} +} +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; uint8_t x_41; uint8_t x_42; uint8_t x_43; uint8_t x_44; uint8_t x_45; uint8_t x_46; uint8_t x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_38 = lean_ctor_get(x_2, 0); +x_39 = lean_ctor_get(x_2, 1); +x_40 = lean_ctor_get(x_2, 2); +lean_inc(x_40); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_2); +x_41 = lean_ctor_get_uint8(x_38, 0); +x_42 = lean_ctor_get_uint8(x_38, 1); +x_43 = lean_ctor_get_uint8(x_38, 2); +x_44 = lean_ctor_get_uint8(x_38, 3); +x_45 = lean_ctor_get_uint8(x_38, 4); +x_46 = lean_ctor_get_uint8(x_38, 6); +x_47 = lean_ctor_get_uint8(x_38, 7); +if (lean_is_exclusive(x_38)) { + x_48 = x_38; +} else { + lean_dec_ref(x_38); + x_48 = lean_box(0); +} +x_49 = 1; +if (lean_is_scalar(x_48)) { + x_50 = lean_alloc_ctor(0, 0, 8); +} else { + x_50 = x_48; +} +lean_ctor_set_uint8(x_50, 0, x_41); +lean_ctor_set_uint8(x_50, 1, x_42); +lean_ctor_set_uint8(x_50, 2, x_43); +lean_ctor_set_uint8(x_50, 3, x_44); +lean_ctor_set_uint8(x_50, 4, x_45); +lean_ctor_set_uint8(x_50, 5, x_49); +lean_ctor_set_uint8(x_50, 6, x_46); +lean_ctor_set_uint8(x_50, 7, x_47); +x_51 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_51, 0, x_50); +lean_ctor_set(x_51, 1, x_39); +lean_ctor_set(x_51, 2, x_40); +x_52 = l_Lean_Meta_whnf___at_Lean_Meta_introNCore___spec__4(x_1, x_51, x_3, x_4, x_5, x_6); +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); +if (lean_is_exclusive(x_52)) { + lean_ctor_release(x_52, 0); + lean_ctor_release(x_52, 1); + x_55 = x_52; +} else { + lean_dec_ref(x_52); + x_55 = lean_box(0); +} +if (lean_is_scalar(x_55)) { + x_56 = lean_alloc_ctor(0, 2, 0); +} else { + x_56 = x_55; +} +lean_ctor_set(x_56, 0, x_53); +lean_ctor_set(x_56, 1, x_54); +return x_56; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_57 = lean_ctor_get(x_52, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_52, 1); +lean_inc(x_58); +if (lean_is_exclusive(x_52)) { + lean_ctor_release(x_52, 0); + lean_ctor_release(x_52, 1); + x_59 = x_52; +} else { + lean_dec_ref(x_52); + x_59 = lean_box(0); +} +if (lean_is_scalar(x_59)) { + x_60 = lean_alloc_ctor(1, 2, 0); +} else { + x_60 = x_59; +} +lean_ctor_set(x_60, 0, x_57); +lean_ctor_set(x_60, 1, x_58); +return x_60; +} +} +} +} +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___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) { +_start: +{ +lean_object* x_7; lean_object* x_8; uint8_t x_9; +x_7 = lean_ctor_get(x_4, 3); +x_8 = l_Lean_addMessageContextFull___at_Lean_Meta_Lean_AddMessageContext___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +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); +lean_inc(x_7); +x_11 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_11, 0, x_7); +lean_ctor_set(x_11, 1, x_10); +lean_ctor_set_tag(x_8, 1); +lean_ctor_set(x_8, 0, x_11); +return x_8; +} +else +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; +x_12 = lean_ctor_get(x_8, 0); +x_13 = lean_ctor_get(x_8, 1); +lean_inc(x_13); +lean_inc(x_12); +lean_dec(x_8); +lean_inc(x_7); +x_14 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_14, 0, x_7); +lean_ctor_set(x_14, 1, x_12); +x_15 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +return x_15; +} +} +} +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg___boxed), 6, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_getArrayArgType___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; +x_8 = l_Lean_Expr_appArg_x21(x_1); +x_9 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_9, 0, x_8); +lean_ctor_set(x_9, 1, x_7); +return x_9; +} +} static lean_object* _init_l_Lean_Meta_getArrayArgType___closed__1() { _start: { @@ -144,18 +589,7 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_getArrayArgType___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_getArrayArgType___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_getArrayArgType___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } @@ -168,7 +602,7 @@ lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_7 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_1, x_2, x_3, 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; @@ -181,188 +615,1006 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_10 = l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(x_8, x_2, x_3, x_4, x_5, x_9); +x_10 = l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(x_8, x_2, x_3, x_4, x_5, x_9); 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_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +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_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; +x_14 = lean_unsigned_to_nat(1u); +x_15 = l_Lean_Expr_isAppOfArity___main(x_11, x_13, x_14); +if (x_15 == 0) { -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_10, 0); -x_13 = lean_ctor_get(x_10, 1); -x_14 = l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; -x_15 = lean_unsigned_to_nat(1u); -x_16 = l_Lean_Expr_isAppOfArity___main(x_12, x_14, x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; -lean_free_object(x_10); -lean_dec(x_12); -x_17 = l_Lean_indentExpr(x_1); -x_18 = l_Lean_Meta_getArrayArgType___closed__3; -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_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_19, x_2, x_3, x_4, x_5, x_13); +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_dec(x_11); +x_16 = l_Lean_indentExpr(x_1); +x_17 = l_Lean_Meta_getArrayArgType___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_Meta_throwTacticEx___rarg___closed__6; +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_Meta_getArrayArgType___spec__3___rarg(x_20, x_2, x_3, x_4, x_5, x_12); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_21 = !lean_is_exclusive(x_20); -if (x_21 == 0) +x_22 = !lean_is_exclusive(x_21); +if (x_22 == 0) { -return x_20; +return x_21; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = lean_ctor_get(x_20, 0); -x_23 = lean_ctor_get(x_20, 1); +lean_object* x_23; lean_object* x_24; lean_object* x_25; +x_23 = lean_ctor_get(x_21, 0); +x_24 = lean_ctor_get(x_21, 1); +lean_inc(x_24); lean_inc(x_23); -lean_inc(x_22); -lean_dec(x_20); -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_21); +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_object* x_27; +lean_dec(x_1); +x_26 = lean_box(0); +x_27 = l_Lean_Meta_getArrayArgType___lambda__1(x_11, x_26, x_2, x_3, x_4, x_5, x_12); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_11); +return x_27; +} +} +else +{ +uint8_t x_28; lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_25 = l_Lean_Expr_appArg_x21(x_12); -lean_dec(x_12); -lean_ctor_set(x_10, 0, x_25); -return x_10; -} -} -else -{ -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_26 = lean_ctor_get(x_10, 0); -x_27 = lean_ctor_get(x_10, 1); -lean_inc(x_27); -lean_inc(x_26); -lean_dec(x_10); -x_28 = l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; -x_29 = lean_unsigned_to_nat(1u); -x_30 = l_Lean_Expr_isAppOfArity___main(x_26, x_28, 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_dec(x_26); -x_31 = l_Lean_indentExpr(x_1); -x_32 = l_Lean_Meta_getArrayArgType___closed__3; -x_33 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_31); -x_34 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_33, x_2, x_3, x_4, x_5, x_27); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_35 = lean_ctor_get(x_34, 0); -lean_inc(x_35); -x_36 = lean_ctor_get(x_34, 1); -lean_inc(x_36); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_37 = x_34; -} else { - lean_dec_ref(x_34); - 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; -} -else -{ -lean_object* x_39; lean_object* x_40; -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_39 = l_Lean_Expr_appArg_x21(x_26); -lean_dec(x_26); -x_40 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_40, 0, x_39); -lean_ctor_set(x_40, 1, x_27); -return x_40; -} -} -} -else -{ -uint8_t x_41; -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -x_41 = !lean_is_exclusive(x_10); -if (x_41 == 0) +x_28 = !lean_is_exclusive(x_10); +if (x_28 == 0) { return x_10; } else { -lean_object* x_42; lean_object* x_43; lean_object* x_44; -x_42 = lean_ctor_get(x_10, 0); -x_43 = lean_ctor_get(x_10, 1); -lean_inc(x_43); -lean_inc(x_42); +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_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; +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_45; +uint8_t x_32; lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_45 = !lean_is_exclusive(x_7); -if (x_45 == 0) +x_32 = !lean_is_exclusive(x_7); +if (x_32 == 0) { return x_7; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_7, 0); -x_47 = lean_ctor_get(x_7, 1); -lean_inc(x_47); -lean_inc(x_46); +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_7, 0); +x_34 = lean_ctor_get(x_7, 1); +lean_inc(x_34); +lean_inc(x_33); lean_dec(x_7); -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; +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_object* l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___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* l_Lean_throwError___at_Lean_Meta_getArrayArgType___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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___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); +return x_7; +} +} +lean_object* l_Lean_Meta_getArrayArgType___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_Meta_getArrayArgType___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_object* l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___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; lean_object* x_9; lean_object* x_10; uint8_t x_11; lean_object* x_12; lean_object* x_214; lean_object* x_215; lean_object* x_216; uint8_t x_217; +x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_AppBuilder_20__mkFun___boxed), 6, 1); +lean_closure_set(x_8, 0, x_1); +x_9 = lean_alloc_closure((void*)(l_Lean_Meta_mkAppM___rarg___lambda__1___boxed), 7, 1); +lean_closure_set(x_9, 0, x_2); +x_10 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_10, 0, x_8); +lean_closure_set(x_10, 1, x_9); +x_214 = lean_st_ref_get(x_6, x_7); +x_215 = lean_ctor_get(x_214, 0); +lean_inc(x_215); +x_216 = lean_ctor_get(x_215, 3); +lean_inc(x_216); +lean_dec(x_215); +x_217 = lean_ctor_get_uint8(x_216, sizeof(void*)*1); +lean_dec(x_216); +if (x_217 == 0) +{ +lean_object* x_218; uint8_t x_219; +x_218 = lean_ctor_get(x_214, 1); +lean_inc(x_218); +lean_dec(x_214); +x_219 = 0; +x_11 = x_219; +x_12 = x_218; +goto block_213; +} +else +{ +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_220 = lean_ctor_get(x_214, 1); +lean_inc(x_220); +lean_dec(x_214); +x_221 = l_Lean_Meta_mkAppM___rarg___closed__2; +x_222 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_isLevelDefEq___spec__1(x_221, x_3, x_4, x_5, x_6, x_220); +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_unbox(x_223); +lean_dec(x_223); +x_11 = x_225; +x_12 = x_224; +goto block_213; +} +block_213: +{ +if (x_11 == 0) +{ +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_st_ref_get(x_6, x_12); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_14, 3); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_ctor_get(x_13, 1); +lean_inc(x_16); +lean_dec(x_13); +x_17 = lean_ctor_get_uint8(x_15, sizeof(void*)*1); +lean_dec(x_15); +x_18 = lean_st_ref_take(x_6, x_16); +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_19, 3); +lean_inc(x_20); +x_21 = lean_ctor_get(x_18, 1); +lean_inc(x_21); +lean_dec(x_18); +x_22 = !lean_is_exclusive(x_19); +if (x_22 == 0) +{ +lean_object* x_23; uint8_t x_24; +x_23 = lean_ctor_get(x_19, 3); +lean_dec(x_23); +x_24 = !lean_is_exclusive(x_20); +if (x_24 == 0) +{ +uint8_t x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_25 = 0; +lean_ctor_set_uint8(x_20, sizeof(void*)*1, x_25); +x_26 = lean_st_ref_set(x_6, x_19, x_21); +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +lean_dec(x_26); +lean_inc(x_6); +x_28 = l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(x_10, x_3, x_4, x_5, x_6, 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; lean_object* x_34; lean_object* x_35; lean_object* x_36; uint8_t x_37; +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_st_ref_get(x_6, x_30); +x_32 = lean_ctor_get(x_31, 1); +lean_inc(x_32); +lean_dec(x_31); +x_33 = lean_st_ref_take(x_6, x_32); +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_34, 3); +lean_inc(x_35); +x_36 = lean_ctor_get(x_33, 1); +lean_inc(x_36); +lean_dec(x_33); +x_37 = !lean_is_exclusive(x_34); +if (x_37 == 0) +{ +lean_object* x_38; uint8_t x_39; +x_38 = lean_ctor_get(x_34, 3); +lean_dec(x_38); +x_39 = !lean_is_exclusive(x_35); +if (x_39 == 0) +{ +lean_object* x_40; uint8_t x_41; +lean_ctor_set_uint8(x_35, sizeof(void*)*1, x_17); +x_40 = lean_st_ref_set(x_6, x_34, x_36); +lean_dec(x_6); +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_29); +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_29); +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; +x_45 = lean_ctor_get(x_35, 0); +lean_inc(x_45); +lean_dec(x_35); +x_46 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_46, 0, x_45); +lean_ctor_set_uint8(x_46, sizeof(void*)*1, x_17); +lean_ctor_set(x_34, 3, x_46); +x_47 = lean_st_ref_set(x_6, x_34, x_36); +lean_dec(x_6); +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_29); +lean_ctor_set(x_50, 1, x_48); +return x_50; +} +} +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; +x_51 = lean_ctor_get(x_34, 0); +x_52 = lean_ctor_get(x_34, 1); +x_53 = lean_ctor_get(x_34, 2); +lean_inc(x_53); +lean_inc(x_52); +lean_inc(x_51); +lean_dec(x_34); +x_54 = lean_ctor_get(x_35, 0); +lean_inc(x_54); +if (lean_is_exclusive(x_35)) { + lean_ctor_release(x_35, 0); + x_55 = x_35; +} else { + lean_dec_ref(x_35); + x_55 = lean_box(0); +} +if (lean_is_scalar(x_55)) { + x_56 = lean_alloc_ctor(0, 1, 1); +} else { + x_56 = x_55; +} +lean_ctor_set(x_56, 0, x_54); +lean_ctor_set_uint8(x_56, sizeof(void*)*1, x_17); +x_57 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_57, 0, x_51); +lean_ctor_set(x_57, 1, x_52); +lean_ctor_set(x_57, 2, x_53); +lean_ctor_set(x_57, 3, x_56); +x_58 = lean_st_ref_set(x_6, x_57, x_36); +lean_dec(x_6); +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); +} +if (lean_is_scalar(x_60)) { + x_61 = lean_alloc_ctor(0, 2, 0); +} else { + x_61 = x_60; +} +lean_ctor_set(x_61, 0, x_29); +lean_ctor_set(x_61, 1, 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; lean_object* x_67; lean_object* x_68; lean_object* x_69; uint8_t x_70; +x_62 = lean_ctor_get(x_28, 0); +lean_inc(x_62); +x_63 = lean_ctor_get(x_28, 1); +lean_inc(x_63); +lean_dec(x_28); +x_64 = lean_st_ref_get(x_6, x_63); +x_65 = lean_ctor_get(x_64, 1); +lean_inc(x_65); +lean_dec(x_64); +x_66 = lean_st_ref_take(x_6, x_65); +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +x_68 = lean_ctor_get(x_67, 3); +lean_inc(x_68); +x_69 = lean_ctor_get(x_66, 1); +lean_inc(x_69); +lean_dec(x_66); +x_70 = !lean_is_exclusive(x_67); +if (x_70 == 0) +{ +lean_object* x_71; uint8_t x_72; +x_71 = lean_ctor_get(x_67, 3); +lean_dec(x_71); +x_72 = !lean_is_exclusive(x_68); +if (x_72 == 0) +{ +lean_object* x_73; uint8_t x_74; +lean_ctor_set_uint8(x_68, sizeof(void*)*1, x_17); +x_73 = lean_st_ref_set(x_6, x_67, x_69); +lean_dec(x_6); +x_74 = !lean_is_exclusive(x_73); +if (x_74 == 0) +{ +lean_object* x_75; +x_75 = lean_ctor_get(x_73, 0); +lean_dec(x_75); +lean_ctor_set_tag(x_73, 1); +lean_ctor_set(x_73, 0, x_62); +return x_73; +} +else +{ +lean_object* x_76; lean_object* x_77; +x_76 = lean_ctor_get(x_73, 1); +lean_inc(x_76); +lean_dec(x_73); +x_77 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_77, 0, x_62); +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_object* x_81; lean_object* x_82; lean_object* x_83; +x_78 = lean_ctor_get(x_68, 0); +lean_inc(x_78); +lean_dec(x_68); +x_79 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set_uint8(x_79, sizeof(void*)*1, x_17); +lean_ctor_set(x_67, 3, x_79); +x_80 = lean_st_ref_set(x_6, x_67, x_69); +lean_dec(x_6); +x_81 = lean_ctor_get(x_80, 1); +lean_inc(x_81); +if (lean_is_exclusive(x_80)) { + lean_ctor_release(x_80, 0); + lean_ctor_release(x_80, 1); + x_82 = x_80; +} else { + lean_dec_ref(x_80); + x_82 = lean_box(0); +} +if (lean_is_scalar(x_82)) { + x_83 = lean_alloc_ctor(1, 2, 0); +} else { + x_83 = x_82; + lean_ctor_set_tag(x_83, 1); +} +lean_ctor_set(x_83, 0, x_62); +lean_ctor_set(x_83, 1, x_81); +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_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; +x_84 = lean_ctor_get(x_67, 0); +x_85 = lean_ctor_get(x_67, 1); +x_86 = lean_ctor_get(x_67, 2); +lean_inc(x_86); +lean_inc(x_85); +lean_inc(x_84); +lean_dec(x_67); +x_87 = lean_ctor_get(x_68, 0); +lean_inc(x_87); +if (lean_is_exclusive(x_68)) { + lean_ctor_release(x_68, 0); + x_88 = x_68; +} else { + lean_dec_ref(x_68); + x_88 = lean_box(0); +} +if (lean_is_scalar(x_88)) { + x_89 = lean_alloc_ctor(0, 1, 1); +} else { + x_89 = x_88; +} +lean_ctor_set(x_89, 0, x_87); +lean_ctor_set_uint8(x_89, sizeof(void*)*1, x_17); +x_90 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_90, 0, x_84); +lean_ctor_set(x_90, 1, x_85); +lean_ctor_set(x_90, 2, x_86); +lean_ctor_set(x_90, 3, x_89); +x_91 = lean_st_ref_set(x_6, x_90, x_69); +lean_dec(x_6); +x_92 = lean_ctor_get(x_91, 1); +lean_inc(x_92); +if (lean_is_exclusive(x_91)) { + lean_ctor_release(x_91, 0); + lean_ctor_release(x_91, 1); + x_93 = x_91; +} else { + lean_dec_ref(x_91); + 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_tag(x_94, 1); +} +lean_ctor_set(x_94, 0, x_62); +lean_ctor_set(x_94, 1, x_92); +return x_94; +} +} +} +else +{ +lean_object* x_95; uint8_t x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +x_95 = lean_ctor_get(x_20, 0); +lean_inc(x_95); +lean_dec(x_20); +x_96 = 0; +x_97 = lean_alloc_ctor(0, 1, 1); +lean_ctor_set(x_97, 0, x_95); +lean_ctor_set_uint8(x_97, sizeof(void*)*1, x_96); +lean_ctor_set(x_19, 3, x_97); +x_98 = lean_st_ref_set(x_6, x_19, x_21); +x_99 = lean_ctor_get(x_98, 1); +lean_inc(x_99); +lean_dec(x_98); +lean_inc(x_6); +x_100 = l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(x_10, x_3, x_4, x_5, x_6, x_99); +if (lean_obj_tag(x_100) == 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; 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; lean_object* x_119; lean_object* x_120; +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 = lean_st_ref_get(x_6, x_102); +x_104 = lean_ctor_get(x_103, 1); +lean_inc(x_104); +lean_dec(x_103); +x_105 = lean_st_ref_take(x_6, x_104); +x_106 = lean_ctor_get(x_105, 0); +lean_inc(x_106); +x_107 = lean_ctor_get(x_106, 3); +lean_inc(x_107); +x_108 = lean_ctor_get(x_105, 1); +lean_inc(x_108); +lean_dec(x_105); +x_109 = lean_ctor_get(x_106, 0); +lean_inc(x_109); +x_110 = lean_ctor_get(x_106, 1); +lean_inc(x_110); +x_111 = lean_ctor_get(x_106, 2); +lean_inc(x_111); +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); + x_112 = x_106; +} else { + lean_dec_ref(x_106); + x_112 = lean_box(0); +} +x_113 = lean_ctor_get(x_107, 0); +lean_inc(x_113); +if (lean_is_exclusive(x_107)) { + lean_ctor_release(x_107, 0); + x_114 = x_107; +} else { + lean_dec_ref(x_107); + x_114 = lean_box(0); +} +if (lean_is_scalar(x_114)) { + x_115 = lean_alloc_ctor(0, 1, 1); +} else { + x_115 = x_114; +} +lean_ctor_set(x_115, 0, x_113); +lean_ctor_set_uint8(x_115, sizeof(void*)*1, x_17); +if (lean_is_scalar(x_112)) { + x_116 = lean_alloc_ctor(0, 4, 0); +} else { + x_116 = x_112; +} +lean_ctor_set(x_116, 0, x_109); +lean_ctor_set(x_116, 1, x_110); +lean_ctor_set(x_116, 2, x_111); +lean_ctor_set(x_116, 3, x_115); +x_117 = lean_st_ref_set(x_6, x_116, x_108); +lean_dec(x_6); +x_118 = lean_ctor_get(x_117, 1); +lean_inc(x_118); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_119 = x_117; +} else { + lean_dec_ref(x_117); + x_119 = lean_box(0); +} +if (lean_is_scalar(x_119)) { + x_120 = lean_alloc_ctor(0, 2, 0); +} else { + x_120 = x_119; +} +lean_ctor_set(x_120, 0, x_101); +lean_ctor_set(x_120, 1, x_118); +return x_120; +} +else +{ +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; 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_object* x_140; +x_121 = lean_ctor_get(x_100, 0); +lean_inc(x_121); +x_122 = lean_ctor_get(x_100, 1); +lean_inc(x_122); +lean_dec(x_100); +x_123 = lean_st_ref_get(x_6, x_122); +x_124 = lean_ctor_get(x_123, 1); +lean_inc(x_124); +lean_dec(x_123); +x_125 = lean_st_ref_take(x_6, x_124); +x_126 = lean_ctor_get(x_125, 0); +lean_inc(x_126); +x_127 = lean_ctor_get(x_126, 3); +lean_inc(x_127); +x_128 = lean_ctor_get(x_125, 1); +lean_inc(x_128); +lean_dec(x_125); +x_129 = lean_ctor_get(x_126, 0); +lean_inc(x_129); +x_130 = lean_ctor_get(x_126, 1); +lean_inc(x_130); +x_131 = lean_ctor_get(x_126, 2); +lean_inc(x_131); +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_132 = x_126; +} else { + lean_dec_ref(x_126); + x_132 = lean_box(0); +} +x_133 = lean_ctor_get(x_127, 0); +lean_inc(x_133); +if (lean_is_exclusive(x_127)) { + lean_ctor_release(x_127, 0); + x_134 = x_127; +} else { + lean_dec_ref(x_127); + x_134 = lean_box(0); +} +if (lean_is_scalar(x_134)) { + x_135 = lean_alloc_ctor(0, 1, 1); +} else { + x_135 = x_134; +} +lean_ctor_set(x_135, 0, x_133); +lean_ctor_set_uint8(x_135, sizeof(void*)*1, x_17); +if (lean_is_scalar(x_132)) { + x_136 = lean_alloc_ctor(0, 4, 0); +} else { + x_136 = x_132; +} +lean_ctor_set(x_136, 0, x_129); +lean_ctor_set(x_136, 1, x_130); +lean_ctor_set(x_136, 2, x_131); +lean_ctor_set(x_136, 3, x_135); +x_137 = lean_st_ref_set(x_6, x_136, x_128); +lean_dec(x_6); +x_138 = lean_ctor_get(x_137, 1); +lean_inc(x_138); +if (lean_is_exclusive(x_137)) { + lean_ctor_release(x_137, 0); + lean_ctor_release(x_137, 1); + x_139 = x_137; +} else { + lean_dec_ref(x_137); + x_139 = lean_box(0); +} +if (lean_is_scalar(x_139)) { + x_140 = lean_alloc_ctor(1, 2, 0); +} else { + x_140 = x_139; + lean_ctor_set_tag(x_140, 1); +} +lean_ctor_set(x_140, 0, x_121); +lean_ctor_set(x_140, 1, x_138); +return x_140; +} +} +} +else +{ +lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; uint8_t x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; +x_141 = lean_ctor_get(x_19, 0); +x_142 = lean_ctor_get(x_19, 1); +x_143 = lean_ctor_get(x_19, 2); +lean_inc(x_143); +lean_inc(x_142); +lean_inc(x_141); +lean_dec(x_19); +x_144 = lean_ctor_get(x_20, 0); +lean_inc(x_144); +if (lean_is_exclusive(x_20)) { + lean_ctor_release(x_20, 0); + x_145 = x_20; +} else { + lean_dec_ref(x_20); + x_145 = lean_box(0); +} +x_146 = 0; +if (lean_is_scalar(x_145)) { + x_147 = lean_alloc_ctor(0, 1, 1); +} else { + x_147 = x_145; +} +lean_ctor_set(x_147, 0, x_144); +lean_ctor_set_uint8(x_147, sizeof(void*)*1, x_146); +x_148 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_148, 0, x_141); +lean_ctor_set(x_148, 1, x_142); +lean_ctor_set(x_148, 2, x_143); +lean_ctor_set(x_148, 3, x_147); +x_149 = lean_st_ref_set(x_6, x_148, x_21); +x_150 = lean_ctor_get(x_149, 1); +lean_inc(x_150); +lean_dec(x_149); +lean_inc(x_6); +x_151 = l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(x_10, x_3, x_4, x_5, x_6, x_150); +if (lean_obj_tag(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; 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; lean_object* x_169; lean_object* x_170; lean_object* x_171; +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_st_ref_get(x_6, x_153); +x_155 = lean_ctor_get(x_154, 1); +lean_inc(x_155); +lean_dec(x_154); +x_156 = lean_st_ref_take(x_6, x_155); +x_157 = lean_ctor_get(x_156, 0); +lean_inc(x_157); +x_158 = lean_ctor_get(x_157, 3); +lean_inc(x_158); +x_159 = lean_ctor_get(x_156, 1); +lean_inc(x_159); +lean_dec(x_156); +x_160 = lean_ctor_get(x_157, 0); +lean_inc(x_160); +x_161 = lean_ctor_get(x_157, 1); +lean_inc(x_161); +x_162 = lean_ctor_get(x_157, 2); +lean_inc(x_162); +if (lean_is_exclusive(x_157)) { + lean_ctor_release(x_157, 0); + lean_ctor_release(x_157, 1); + lean_ctor_release(x_157, 2); + lean_ctor_release(x_157, 3); + x_163 = x_157; +} else { + lean_dec_ref(x_157); + x_163 = lean_box(0); +} +x_164 = lean_ctor_get(x_158, 0); +lean_inc(x_164); +if (lean_is_exclusive(x_158)) { + lean_ctor_release(x_158, 0); + x_165 = x_158; +} else { + lean_dec_ref(x_158); + x_165 = lean_box(0); +} +if (lean_is_scalar(x_165)) { + x_166 = lean_alloc_ctor(0, 1, 1); +} else { + x_166 = x_165; +} +lean_ctor_set(x_166, 0, x_164); +lean_ctor_set_uint8(x_166, sizeof(void*)*1, x_17); +if (lean_is_scalar(x_163)) { + x_167 = lean_alloc_ctor(0, 4, 0); +} else { + x_167 = x_163; +} +lean_ctor_set(x_167, 0, x_160); +lean_ctor_set(x_167, 1, x_161); +lean_ctor_set(x_167, 2, x_162); +lean_ctor_set(x_167, 3, x_166); +x_168 = lean_st_ref_set(x_6, x_167, x_159); +lean_dec(x_6); +x_169 = lean_ctor_get(x_168, 1); +lean_inc(x_169); +if (lean_is_exclusive(x_168)) { + lean_ctor_release(x_168, 0); + lean_ctor_release(x_168, 1); + x_170 = x_168; +} else { + lean_dec_ref(x_168); + x_170 = lean_box(0); +} +if (lean_is_scalar(x_170)) { + x_171 = lean_alloc_ctor(0, 2, 0); +} else { + x_171 = x_170; +} +lean_ctor_set(x_171, 0, x_152); +lean_ctor_set(x_171, 1, x_169); +return x_171; +} +else +{ +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_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; lean_object* x_190; lean_object* x_191; +x_172 = lean_ctor_get(x_151, 0); +lean_inc(x_172); +x_173 = lean_ctor_get(x_151, 1); +lean_inc(x_173); +lean_dec(x_151); +x_174 = lean_st_ref_get(x_6, x_173); +x_175 = lean_ctor_get(x_174, 1); +lean_inc(x_175); +lean_dec(x_174); +x_176 = lean_st_ref_take(x_6, x_175); +x_177 = lean_ctor_get(x_176, 0); +lean_inc(x_177); +x_178 = lean_ctor_get(x_177, 3); +lean_inc(x_178); +x_179 = lean_ctor_get(x_176, 1); +lean_inc(x_179); +lean_dec(x_176); +x_180 = lean_ctor_get(x_177, 0); +lean_inc(x_180); +x_181 = lean_ctor_get(x_177, 1); +lean_inc(x_181); +x_182 = lean_ctor_get(x_177, 2); +lean_inc(x_182); +if (lean_is_exclusive(x_177)) { + lean_ctor_release(x_177, 0); + lean_ctor_release(x_177, 1); + lean_ctor_release(x_177, 2); + lean_ctor_release(x_177, 3); + x_183 = x_177; +} else { + lean_dec_ref(x_177); + x_183 = lean_box(0); +} +x_184 = lean_ctor_get(x_178, 0); +lean_inc(x_184); +if (lean_is_exclusive(x_178)) { + lean_ctor_release(x_178, 0); + x_185 = x_178; +} else { + lean_dec_ref(x_178); + x_185 = lean_box(0); +} +if (lean_is_scalar(x_185)) { + x_186 = lean_alloc_ctor(0, 1, 1); +} else { + x_186 = x_185; +} +lean_ctor_set(x_186, 0, x_184); +lean_ctor_set_uint8(x_186, sizeof(void*)*1, x_17); +if (lean_is_scalar(x_183)) { + x_187 = lean_alloc_ctor(0, 4, 0); +} else { + x_187 = x_183; +} +lean_ctor_set(x_187, 0, x_180); +lean_ctor_set(x_187, 1, x_181); +lean_ctor_set(x_187, 2, x_182); +lean_ctor_set(x_187, 3, x_186); +x_188 = lean_st_ref_set(x_6, x_187, x_179); +lean_dec(x_6); +x_189 = lean_ctor_get(x_188, 1); +lean_inc(x_189); +if (lean_is_exclusive(x_188)) { + lean_ctor_release(x_188, 0); + lean_ctor_release(x_188, 1); + x_190 = x_188; +} else { + lean_dec_ref(x_188); + x_190 = lean_box(0); +} +if (lean_is_scalar(x_190)) { + x_191 = lean_alloc_ctor(1, 2, 0); +} else { + x_191 = x_190; + lean_ctor_set_tag(x_191, 1); +} +lean_ctor_set(x_191, 0, x_172); +lean_ctor_set(x_191, 1, x_189); +return x_191; +} +} +} +else +{ +lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; +x_192 = lean_ctor_get(x_5, 3); +lean_inc(x_192); +x_193 = l___private_Lean_Util_Trace_5__getResetTraces___at_Lean_Meta_isLevelDefEq___spec__4___rarg(x_6, x_12); +x_194 = lean_ctor_get(x_193, 0); +lean_inc(x_194); +x_195 = lean_ctor_get(x_193, 1); +lean_inc(x_195); +lean_dec(x_193); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_196 = l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(x_10, x_3, x_4, x_5, x_6, x_195); +if (lean_obj_tag(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_196, 0); +lean_inc(x_197); +x_198 = lean_ctor_get(x_196, 1); +lean_inc(x_198); +lean_dec(x_196); +x_199 = l_Lean_Meta_mkAppM___rarg___closed__2; +x_200 = l___private_Lean_Util_Trace_4__addNode___at_Lean_Meta_isLevelDefEq___spec__5(x_194, x_199, x_192, x_3, x_4, x_5, x_6, x_198); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_201 = !lean_is_exclusive(x_200); +if (x_201 == 0) +{ +lean_object* x_202; +x_202 = lean_ctor_get(x_200, 0); +lean_dec(x_202); +lean_ctor_set(x_200, 0, x_197); +return x_200; +} +else +{ +lean_object* x_203; lean_object* x_204; +x_203 = lean_ctor_get(x_200, 1); +lean_inc(x_203); +lean_dec(x_200); +x_204 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_204, 0, x_197); +lean_ctor_set(x_204, 1, x_203); +return x_204; +} +} +else +{ +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_196, 0); +lean_inc(x_205); +x_206 = lean_ctor_get(x_196, 1); +lean_inc(x_206); +lean_dec(x_196); +x_207 = l_Lean_Meta_mkAppM___rarg___closed__2; +x_208 = l___private_Lean_Util_Trace_4__addNode___at_Lean_Meta_isLevelDefEq___spec__5(x_194, x_207, x_192, x_3, x_4, x_5, x_6, x_206); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_209 = !lean_is_exclusive(x_208); +if (x_209 == 0) +{ +lean_object* x_210; +x_210 = lean_ctor_get(x_208, 0); +lean_dec(x_210); +lean_ctor_set_tag(x_208, 1); +lean_ctor_set(x_208, 0, x_205); +return x_208; +} +else +{ +lean_object* x_211; lean_object* x_212; +x_211 = lean_ctor_get(x_208, 1); +lean_inc(x_211); +lean_dec(x_208); +x_212 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_212, 0, x_205); +lean_ctor_set(x_212, 1, x_211); +return x_212; +} +} +} +} +} +} +lean_object* l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___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; @@ -370,11 +1622,11 @@ x_8 = l_Lean_mkAppStx___closed__9; x_9 = lean_array_push(x_8, x_1); x_10 = lean_array_push(x_9, x_2); x_11 = l_Lean_Meta_mkLt___rarg___closed__4; -x_12 = l_Lean_Meta_mkAppM___at_Lean_Meta_mkDecideProof___spec__1(x_11, x_10, x_3, x_4, x_5, x_6, x_7); +x_12 = l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__2(x_11, x_10, x_3, x_4, x_5, x_6, x_7); return x_12; } } -lean_object* l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___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* l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___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) { _start: { lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; @@ -549,7 +1801,7 @@ return x_41; } } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1() { _start: { lean_object* x_1; @@ -557,17 +1809,17 @@ x_1 = lean_mk_string("getLit"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; -x_2 = l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1; +x_2 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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; @@ -578,7 +1830,7 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_10); -x_12 = l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___spec__1(x_10, x_11, x_5, x_6, x_7, x_8, x_9); +x_12 = l_Lean_Meta_mkLt___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__1(x_10, 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; @@ -591,7 +1843,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_15 = l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___spec__2(x_13, x_5, x_6, x_7, x_8, x_14); +x_15 = l_Lean_Meta_mkDecideProof___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__3(x_13, x_5, x_6, x_7, x_8, 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; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; @@ -605,8 +1857,8 @@ x_19 = lean_array_push(x_18, x_1); x_20 = lean_array_push(x_19, x_10); x_21 = lean_array_push(x_20, x_4); x_22 = lean_array_push(x_21, x_16); -x_23 = l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2; -x_24 = l_Lean_Meta_mkAppM___at_Lean_Meta_mkDecideProof___spec__1(x_23, x_22, x_5, x_6, x_7, x_8, x_17); +x_23 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2; +x_24 = l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__2(x_23, x_22, x_5, x_6, x_7, x_8, x_17); return x_24; } else @@ -670,7 +1922,28 @@ return x_32; } } } -lean_object* l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___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* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_match__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 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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; @@ -786,7 +2059,7 @@ return x_36; } } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___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, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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; @@ -800,7 +2073,7 @@ x_13 = lean_ctor_get(x_11, 1); lean_inc(x_13); lean_dec(x_11); x_14 = lean_array_push(x_2, x_5); -x_15 = l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(x_14, x_12, x_6, x_7, x_8, x_9, x_13); +x_15 = l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(x_14, x_12, x_6, x_7, x_8, x_9, x_13); if (lean_obj_tag(x_15) == 0) { uint8_t x_16; @@ -888,7 +2161,7 @@ return x_32; } } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___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, lean_object* x_15, lean_object* x_16) { +lean_object* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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, lean_object* x_15, lean_object* x_16) { _start: { lean_object* x_17; lean_object* x_18; @@ -900,7 +2173,7 @@ lean_inc(x_12); lean_inc(x_5); lean_inc(x_4); lean_inc(x_2); -x_18 = l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit(x_2, x_3, x_4, x_5, x_12, x_13, x_14, x_15, x_16); +x_18 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit(x_2, x_3, x_4, x_5, 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; lean_object* x_21; lean_object* x_22; @@ -910,7 +2183,7 @@ x_20 = lean_ctor_get(x_18, 1); lean_inc(x_20); lean_dec(x_18); x_21 = lean_array_push(x_6, x_19); -x_22 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main(x_7, x_8, x_2, x_4, x_9, x_5, x_10, x_17, x_21, x_12, x_13, x_14, x_15, x_20); +x_22 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop(x_7, x_2, x_4, x_8, x_5, x_9, x_10, x_17, x_21, x_12, x_13, x_14, x_15, x_20); return x_22; } else @@ -950,7 +2223,7 @@ return x_26; } } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1() { _start: { lean_object* x_1; @@ -958,17 +2231,17 @@ x_1 = lean_mk_string("toArrayLitEq"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Array_myMacro____x40_Init_Data_Array_Macros___hyg_141____closed__4; -x_2 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1; +x_2 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3() { _start: { lean_object* x_1; lean_object* x_2; @@ -977,7 +2250,7 @@ x_2 = lean_mk_empty_array_with_capacity(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4() { _start: { lean_object* x_1; @@ -985,32 +2258,32 @@ x_1 = lean_mk_string("hEqALit"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5() { +static lean_object* _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4; +x_2 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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; -x_15 = lean_nat_dec_lt(x_7, x_4); +x_15 = lean_nat_dec_lt(x_7, x_3); if (x_15 == 0) { lean_object* x_16; lean_object* x_17; lean_dec(x_7); -lean_dec(x_5); +lean_dec(x_4); x_16 = l_Array_toList___rarg(x_8); lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_17 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___spec__1(x_2, x_16, x_10, x_11, x_12, x_13, x_14); +x_17 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___spec__1(x_6, x_16, x_10, x_11, x_12, x_13, x_14); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -1023,8 +2296,8 @@ lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -lean_inc(x_3); -x_20 = l___private_Lean_Meta_AppBuilder_3__mkEqImp(x_3, x_18, x_10, x_11, x_12, x_13, x_19); +lean_inc(x_2); +x_20 = l___private_Lean_Meta_AppBuilder_3__mkEqImp(x_2, x_18, x_10, x_11, x_12, x_13, 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; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; @@ -1033,17 +2306,17 @@ lean_inc(x_21); x_22 = lean_ctor_get(x_20, 1); lean_inc(x_22); lean_dec(x_20); -x_23 = l_Lean_mkNatLit(x_4); -x_24 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3; -x_25 = lean_array_push(x_24, x_3); +x_23 = l_Lean_mkNatLit(x_3); +x_24 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3; +x_25 = lean_array_push(x_24, x_2); x_26 = lean_array_push(x_25, x_23); -x_27 = lean_array_push(x_26, x_6); -x_28 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2; +x_27 = lean_array_push(x_26, x_5); +x_28 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2; lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); -x_29 = l_Lean_Meta_mkAppM___at_Lean_Meta_mkDecideProof___spec__1(x_28, x_27, x_10, x_11, x_12, x_13, x_22); +x_29 = l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__2(x_28, x_27, x_10, x_11, x_12, x_13, x_22); if (lean_obj_tag(x_29) == 0) { lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; lean_object* x_35; @@ -1052,14 +2325,14 @@ lean_inc(x_30); x_31 = lean_ctor_get(x_29, 1); lean_inc(x_31); lean_dec(x_29); -x_32 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___lambda__1___boxed), 10, 4); +x_32 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___lambda__1___boxed), 10, 4); lean_closure_set(x_32, 0, x_1); lean_closure_set(x_32, 1, x_8); lean_closure_set(x_32, 2, x_9); lean_closure_set(x_32, 3, x_30); -x_33 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5; +x_33 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5; x_34 = 0; -x_35 = l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(x_33, x_34, x_21, x_32, x_10, x_11, x_12, x_13, x_31); +x_35 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_33, x_34, x_21, x_32, x_10, x_11, x_12, x_13, x_31); return x_35; } else @@ -1102,9 +2375,9 @@ lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_4); +lean_dec(x_5); lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); x_40 = !lean_is_exclusive(x_20); if (x_40 == 0) @@ -1135,9 +2408,9 @@ lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_4); +lean_dec(x_5); lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); x_44 = !lean_is_exclusive(x_17); if (x_44 == 0) @@ -1165,46 +2438,38 @@ lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint x_48 = lean_unsigned_to_nat(1u); x_49 = lean_nat_add(x_7, x_48); lean_inc(x_49); -lean_inc(x_5); -x_50 = l_Lean_Name_appendIndexAfter(x_5, x_49); -lean_inc(x_2); -x_51 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___lambda__2), 16, 10); +lean_inc(x_4); +x_50 = l_Lean_Name_appendIndexAfter(x_4, x_49); +lean_inc(x_6); +x_51 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___lambda__2), 16, 10); lean_closure_set(x_51, 0, x_8); -lean_closure_set(x_51, 1, x_3); +lean_closure_set(x_51, 1, x_2); lean_closure_set(x_51, 2, x_7); -lean_closure_set(x_51, 3, x_4); -lean_closure_set(x_51, 4, x_6); +lean_closure_set(x_51, 3, x_3); +lean_closure_set(x_51, 4, x_5); lean_closure_set(x_51, 5, x_9); lean_closure_set(x_51, 6, x_1); -lean_closure_set(x_51, 7, x_2); -lean_closure_set(x_51, 8, x_5); +lean_closure_set(x_51, 7, x_4); +lean_closure_set(x_51, 8, x_6); lean_closure_set(x_51, 9, x_49); x_52 = 0; -x_53 = l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(x_50, x_52, x_2, x_51, x_10, x_11, x_12, x_13, x_14); +x_53 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_50, x_52, x_6, x_51, x_10, x_11, x_12, x_13, x_14); return x_53; } } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___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* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_11 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___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); return x_11; } } -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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; -x_15 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main(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); -return x_15; -} -} -lean_object* l___private_Lean_Meta_Match_CaseArraySizes_3__introArrayLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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* l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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; @@ -1229,7 +2494,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_1); -x_16 = l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main(x_1, x_12, x_2, x_3, x_4, x_5, x_14, x_15, x_15, x_6, x_7, x_8, x_9, x_13); +x_16 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop(x_1, x_2, x_3, x_4, x_5, x_12, x_14, x_15, x_15, x_6, x_7, x_8, x_9, 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; lean_object* x_21; @@ -1263,7 +2528,7 @@ lean_dec(x_24); lean_inc(x_25); x_27 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_20, x_20, x_14, x_25); lean_dec(x_20); -x_28 = l_Lean_Meta_assignExprMVar___at___private_Lean_Meta_InferType_4__getLevelImp___spec__3(x_1, x_27, x_6, x_7, x_8, x_9, x_26); +x_28 = l_Lean_Meta_assignExprMVar___at_Lean_Meta_admit___spec__2(x_1, x_27, x_6, x_7, x_8, x_9, x_26); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -1384,6 +2649,132 @@ return x_46; } } } +lean_object* l_Lean_Meta_caseArraySizes_match__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 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__2___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__2___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__3___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__3___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__4___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__4(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__4___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__5___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__5(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__5___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__6___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseArraySizes_match__6(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseArraySizes_match__6___rarg), 2, 0); +return x_2; +} +} lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__1(lean_object* x_1, lean_object* x_2) { _start: { @@ -1452,15 +2843,7 @@ goto _start; } } } -lean_object* l_Lean_Meta_mkEqSymm___at_Lean_Meta_caseArraySizes___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) { -_start: -{ -lean_object* x_7; -x_7 = l___private_Lean_Meta_AppBuilder_10__mkEqSymmImp(x_1, x_2, x_3, x_4, x_5, x_6); -return x_7; -} -} -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__4___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* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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) { _start: { lean_object* x_13; @@ -1469,7 +2852,7 @@ lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); lean_inc(x_3); -x_13 = l___private_Lean_Meta_Match_CaseArraySizes_3__introArrayLit(x_1, x_2, x_3, x_4, x_7, x_8, x_9, x_10, x_11, x_12); +x_13 = l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit(x_1, x_2, x_3, x_4, x_7, x_8, x_9, x_10, x_11, x_12); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; @@ -1722,7 +3105,7 @@ return x_65; } } } -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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, lean_object* x_12) { +lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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) { _start: { lean_object* x_13; uint8_t x_14; @@ -1888,12 +3271,12 @@ lean_inc(x_60); lean_dec(x_58); lean_inc(x_24); x_61 = l_Lean_mkFVar(x_24); -x_62 = lean_alloc_closure((void*)(l_Lean_Meta_mkEqSymm___at_Lean_Meta_caseArraySizes___spec__3), 6, 1); +x_62 = lean_alloc_closure((void*)(l_Lean_Meta_mkEqSymm___at_Lean_Meta_substCore___spec__4), 6, 1); lean_closure_set(x_62, 0, x_61); lean_inc(x_2); lean_inc(x_3); lean_inc(x_59); -x_63 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__4___lambda__1), 12, 6); +x_63 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__3___lambda__1), 12, 6); lean_closure_set(x_63, 0, x_59); lean_closure_set(x_63, 1, x_3); lean_closure_set(x_63, 2, x_49); @@ -1907,7 +3290,7 @@ lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -x_65 = l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(x_59, x_64, x_8, x_9, x_10, x_11, x_60); +x_65 = l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(x_59, x_64, x_8, x_9, x_10, x_11, x_60); if (lean_obj_tag(x_65) == 0) { lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; @@ -2087,7 +3470,7 @@ lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_17 = l_Lean_Meta_mkAppM___at_Lean_Meta_mkDecideProof___spec__1(x_16, x_15, x_6, x_7, x_8, x_9, x_13); +x_17 = l_Lean_Meta_mkAppM___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___spec__2(x_16, x_15, x_6, x_7, x_8, x_9, x_13); 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; @@ -2170,7 +3553,7 @@ x_43 = lean_ctor_get(x_41, 1); lean_inc(x_43); lean_dec(x_41); x_44 = x_42; -x_45 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__4___boxed), 12, 7); +x_45 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__3___boxed), 12, 7); lean_closure_set(x_45, 0, x_3); lean_closure_set(x_45, 1, x_4); lean_closure_set(x_45, 2, x_11); @@ -2382,11 +3765,11 @@ lean_dec(x_1); return x_4; } } -lean_object* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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* l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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: { lean_object* x_13; -x_13 = l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___spec__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 = l_Array_umapMAux___main___at_Lean_Meta_caseArraySizes___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); lean_dec(x_1); return x_13; } @@ -2408,6 +3791,12 @@ lean_dec_ref(res); res = initialize_Lean_Meta_Match_CaseValues(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Meta_CaseArraySizesSubgoal_elems___default = _init_l_Lean_Meta_CaseArraySizesSubgoal_elems___default(); +lean_mark_persistent(l_Lean_Meta_CaseArraySizesSubgoal_elems___default); +l_Lean_Meta_CaseArraySizesSubgoal_diseqs___default = _init_l_Lean_Meta_CaseArraySizesSubgoal_diseqs___default(); +lean_mark_persistent(l_Lean_Meta_CaseArraySizesSubgoal_diseqs___default); +l_Lean_Meta_CaseArraySizesSubgoal_subst___default = _init_l_Lean_Meta_CaseArraySizesSubgoal_subst___default(); +lean_mark_persistent(l_Lean_Meta_CaseArraySizesSubgoal_subst___default); l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1 = _init_l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1(); lean_mark_persistent(l_Lean_Meta_CaseArraySizesSubgoal_inhabited___closed__1); l_Lean_Meta_CaseArraySizesSubgoal_inhabited = _init_l_Lean_Meta_CaseArraySizesSubgoal_inhabited(); @@ -2416,22 +3805,20 @@ l_Lean_Meta_getArrayArgType___closed__1 = _init_l_Lean_Meta_getArrayArgType___cl lean_mark_persistent(l_Lean_Meta_getArrayArgType___closed__1); l_Lean_Meta_getArrayArgType___closed__2 = _init_l_Lean_Meta_getArrayArgType___closed__2(); lean_mark_persistent(l_Lean_Meta_getArrayArgType___closed__2); -l_Lean_Meta_getArrayArgType___closed__3 = _init_l_Lean_Meta_getArrayArgType___closed__3(); -lean_mark_persistent(l_Lean_Meta_getArrayArgType___closed__3); -l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1 = _init_l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__1); -l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2 = _init_l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_1__mkArrayGetLit___closed__2); -l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1 = _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__1); -l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2 = _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__2); -l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3 = _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__3); -l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4 = _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__4); -l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5 = _init_l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___closed__5); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__1); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_mkArrayGetLit___closed__2); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__1); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__2); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__3); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__4); +l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5 = _init_l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5(); +lean_mark_persistent(l___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___closed__5); l_Lean_Meta_caseArraySizes___closed__1 = _init_l_Lean_Meta_caseArraySizes___closed__1(); lean_mark_persistent(l_Lean_Meta_caseArraySizes___closed__1); l_Lean_Meta_caseArraySizes___closed__2 = _init_l_Lean_Meta_caseArraySizes___closed__2(); diff --git a/stage0/stdlib/Lean/Meta/Match/CaseValues.c b/stage0/stdlib/Lean/Meta/Match/CaseValues.c index 2110114aca..6300be9b7f 100644 --- a/stage0/stdlib/Lean/Meta/Match/CaseValues.c +++ b/stage0/stdlib/Lean/Meta/Match/CaseValues.c @@ -13,22 +13,26 @@ #ifdef __cplusplus extern "C" { #endif -lean_object* l_Lean_Meta_caseValueAux___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_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___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_Meta_caseValues_loop(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_mvarId_x21(lean_object*); +lean_object* l_Lean_stringToMessageData(lean_object*); lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_Meta_appendTagSuffix(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_List_repr___rarg___closed__1; +lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValueAux___lambda__3___closed__2; -lean_object* l_Lean_Meta_caseValueAux___lambda__2___closed__3; lean_object* l___private_Lean_Util_Trace_4__addNode___at_Lean_Meta_isLevelDefEq___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__3___closed__4; +lean_object* l_Lean_Meta_assignExprMVar___at_Lean_Meta_admit___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__6; lean_object* l_Lean_Meta_caseValues___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__3(lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_substCore___spec__11(lean_object*); extern lean_object* l_Array_empty___closed__1; -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7; +lean_object* l_Lean_Meta_caseValues_loop_match__1(lean_object*); +lean_object* l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(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_Meta_caseValueAux___lambda__4___closed__2; -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__4; +lean_object* l_Lean_Meta_CaseValuesSubgoal_newHs___default; extern lean_object* l_Lean_Meta_mkAppM___rarg___closed__2; lean_object* l_Lean_Meta_FVarSubst_domain(lean_object*); lean_object* l_Lean_Meta_caseValue___closed__4; @@ -36,95 +40,105 @@ lean_object* l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg(lean_ lean_object* l___private_Lean_Meta_AppBuilder_20__mkFun___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*); -lean_object* lean_string_append(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3; -extern lean_object* l_String_splitAux___main___closed__1; -extern lean_object* l_List_repr___rarg___closed__3; +lean_object* l_Lean_MessageData_ofList(lean_object*); +lean_object* l_Lean_Meta_caseValueAux_match__1(lean_object*); lean_object* l_Lean_Meta_caseValue___closed__1; lean_object* l_Lean_Meta_CaseValueSubgoal_inhabited; extern lean_object* l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5; -lean_object* l_Lean_Meta_caseValueAux___lambda__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__1___boxed(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_Meta_caseValueAux___lambda__1___closed__2; -lean_object* l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(uint8_t, lean_object*); +lean_object* l_Lean_Meta_caseValues_loop_match__4(lean_object*); +lean_object* l_Lean_Meta_CaseValuesSubgoal_subst___default; +lean_object* l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___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_Meta_intro1Core(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__8; +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__4; +lean_object* l_Lean_Meta_caseValues_loop___closed__4; lean_object* lean_array_fget(lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__9; lean_object* l_Lean_Meta_substCore(lean_object*, lean_object*, uint8_t, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux_match__3(lean_object*); lean_object* l_Lean_Meta_getMVarType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__1(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main(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_caseValueAux___lambda__1___closed__1; -lean_object* l_Lean_Meta_caseValueAux___lambda__2___boxed(lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__9; lean_object* l_Lean_Meta_caseValueAux___lambda__2___closed__1; lean_object* l_Lean_Meta_tryClear(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__2(lean_object*); +lean_object* l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__2(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValue___closed__2; lean_object* l_Lean_Expr_fvarId_x21(lean_object*); lean_object* l_Lean_Name_appendIndexAfter(lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___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_name_mk_string(lean_object*, lean_object*); -extern lean_object* l_List_repr___rarg___closed__2; lean_object* l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1; -lean_object* l_List_toString___at_Lean_Meta_caseValueAux___spec__2(lean_object*); -extern lean_object* l_List_reprAux___main___rarg___closed__1; -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1; +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__11; +lean_object* l_Lean_Meta_caseValueAux_match__1___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_CaseValueSubgoal_subst___default; lean_object* l_Lean_Meta_caseValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValue___closed__6; lean_object* l_Lean_Meta_withNewMCtxDepth___at___private_Lean_Meta_Instances_1__mkInstanceKey___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2; +lean_object* l_Lean_Meta_caseValues_loop___closed__3; lean_object* l_Lean_Meta_caseValueAux___lambda__3___closed__3; +lean_object* l_Lean_Meta_caseValues_loop___closed__5; +lean_object* l_Lean_Meta_caseValues_loop_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValue___closed__5; lean_object* l_Lean_mkFVar(lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__6; -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4; +lean_object* l_Lean_Meta_caseValues_loop_match__4___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_throwTacticEx___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_FVarSubst_get(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValues_loop___closed__2; lean_object* l_Lean_Meta_caseValueAux(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_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_checkNotAssigned(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__8; +lean_object* l_Lean_Meta_caseValues_loop___closed__6; lean_object* l_Lean_mkApp(lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__1; +lean_object* l_Lean_Meta_caseValues_loop___closed__1; +lean_object* l_Lean_Meta_caseValues_loop_match__3(lean_object*); lean_object* l_Lean_Meta_caseValueAux___lambda__2___closed__2; lean_object* l_Lean_Meta_caseValue___closed__3; -lean_object* l_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___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_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__1; +lean_object* l_Lean_Meta_caseValues_loop_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__10; lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseValues(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkForall(lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_AppBuilder_3__mkEqImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__3; -lean_object* l_Lean_Meta_assignExprMVar___at___private_Lean_Meta_InferType_4__getLevelImp___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValues_loop_match__2(lean_object*); +lean_object* l_Lean_Meta_caseValueAux___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* l_Array_toList___rarg(lean_object*); lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_isLevelDefEq___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__7; -lean_object* l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__2; +lean_object* l_Lean_Meta_caseValueAux_match__2___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__7; extern lean_object* l_Lean_mkOptionalNode___closed__2; -lean_object* l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux_match__2(lean_object*); lean_object* l_Lean_Meta_mkFreshExprSyntheticOpaqueMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6; lean_object* l_Lean_Meta_CaseValueSubgoals_inhabited; -extern lean_object* l_System_FilePath_dirName___closed__1; -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux(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_Name_toStringWithSep___main(lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_throwTacticEx___rarg___closed__6; lean_object* l___private_Lean_Util_Trace_5__getResetTraces___at_Lean_Meta_isLevelDefEq___spec__4___rarg(lean_object*, lean_object*); lean_object* l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1; -lean_object* l_Lean_Meta_caseValueAux___lambda__1___closed__3; lean_object* l_Lean_Meta_mkAppOptM___at_Lean_Meta_caseValueAux___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValues_loop___closed__7; lean_object* l_Lean_Meta_caseValueAux___lambda__3___closed__1; lean_object* l_Lean_Meta_getMVarTag___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__3___boxed(lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkConst(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux_match__3___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__3; lean_object* l_Lean_Meta_mkAppOptM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_caseValueAux___lambda__5___closed__5; +extern lean_object* l_Lean_Meta_isLevelDefEq___rarg___closed__2; +lean_object* l_Lean_Meta_caseValues_loop_match__3___rarg(lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* l_Lean_Meta_caseValueAux___lambda__4___closed__5; +static lean_object* _init_l_Lean_Meta_CaseValueSubgoal_subst___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} static lean_object* _init_l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1() { _start: { @@ -146,6 +160,69 @@ x_1 = l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1; return x_1; } } +lean_object* l_Lean_Meta_caseValueAux_match__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 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseValueAux_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseValueAux_match__2___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseValueAux_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux_match__2___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseValueAux_match__3___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseValueAux_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux_match__3___rarg), 2, 0); +return x_2; +} +} lean_object* l_Lean_Meta_mkAppOptM___at_Lean_Meta_caseValueAux___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: { @@ -999,136 +1076,35 @@ return x_212; } } } -lean_object* l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(uint8_t x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_caseValueAux___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: { -if (x_1 == 0) +uint8_t x_8; +x_8 = lean_ctor_get_uint8(x_2, sizeof(void*)*1); +if (x_8 == 0) { -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = l_String_splitAux___main___closed__1; -return x_3; -} -else -{ -lean_object* x_4; 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; -x_4 = lean_ctor_get(x_2, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -lean_dec(x_2); -x_6 = l_System_FilePath_dirName___closed__1; -x_7 = l_Lean_Name_toStringWithSep___main(x_6, x_4); -x_8 = l_List_reprAux___main___rarg___closed__1; -x_9 = lean_string_append(x_8, x_7); -lean_dec(x_7); -x_10 = l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(x_1, x_5); -x_11 = lean_string_append(x_9, x_10); -lean_dec(x_10); +uint8_t x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_1); +x_9 = 0; +x_10 = lean_box(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_7); return x_11; } -} else { -if (lean_obj_tag(x_2) == 0) -{ lean_object* x_12; -x_12 = l_String_splitAux___main___closed__1; +x_12 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_1, x_3, x_4, x_5, x_6, x_7); return x_12; } -else -{ -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; -x_13 = lean_ctor_get(x_2, 0); -lean_inc(x_13); -x_14 = lean_ctor_get(x_2, 1); -lean_inc(x_14); -lean_dec(x_2); -x_15 = l_System_FilePath_dirName___closed__1; -x_16 = l_Lean_Name_toStringWithSep___main(x_15, x_13); -x_17 = 0; -x_18 = l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(x_17, x_14); -x_19 = lean_string_append(x_16, x_18); -lean_dec(x_18); -return x_19; -} -} -} -} -lean_object* l_List_toString___at_Lean_Meta_caseValueAux___spec__2(lean_object* x_1) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_2; -x_2 = l_List_repr___rarg___closed__1; -return x_2; -} -else -{ -uint8_t x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_3 = 1; -x_4 = l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(x_3, x_1); -x_5 = l_List_repr___rarg___closed__2; -x_6 = lean_string_append(x_5, x_4); -lean_dec(x_4); -x_7 = l_List_repr___rarg___closed__3; -x_8 = lean_string_append(x_6, x_7); -return x_8; -} -} -} -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("subst domain: "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_caseValueAux___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_caseValueAux___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_caseValueAux___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; lean_object* x_7; lean_object* x_8; -x_3 = l_Lean_Meta_FVarSubst_domain(x_1); -x_4 = l_List_toString___at_Lean_Meta_caseValueAux___spec__2(x_3); -x_5 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_5, 0, x_4); -x_6 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_6, 0, x_5); -x_7 = l_Lean_Meta_caseValueAux___lambda__1___closed__3; -x_8 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_8, 0, x_7); -lean_ctor_set(x_8, 1, x_6); -return x_8; } } static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__2___closed__1() { _start: { lean_object* x_1; -x_1 = lean_mk_string("searching for decl"); +x_1 = lean_mk_string("subst domain: "); return x_1; } } @@ -1137,27 +1113,41 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_caseValueAux___lambda__2___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__2___closed__3() { +lean_object* l_Lean_Meta_caseValueAux___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) { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_caseValueAux___lambda__2___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_caseValueAux___lambda__2(lean_object* x_1) { -_start: +if (x_3 == 0) { -lean_object* x_2; -x_2 = l_Lean_Meta_caseValueAux___lambda__2___closed__3; -return x_2; +lean_object* x_9; lean_object* x_10; +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; +} +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; +x_11 = l_Lean_Meta_FVarSubst_domain(x_1); +x_12 = l_List_map___main___at_Lean_Meta_substCore___spec__11(x_11); +x_13 = l_Lean_MessageData_ofList(x_12); +lean_dec(x_12); +x_14 = l_Lean_Meta_caseValueAux___lambda__2___closed__2; +x_15 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +x_16 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_17 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_16); +x_18 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_2, x_17, x_4, x_5, x_6, x_7, x_8); +return x_18; +} } } static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__3___closed__1() { @@ -1173,72 +1163,108 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_caseValueAux___lambda__3___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__3___closed__3() { _start: { +lean_object* x_1; +x_1 = lean_mk_string("searching for decl"); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__3___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_caseValueAux___lambda__3___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_caseValueAux___lambda__3___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -lean_object* l_Lean_Meta_caseValueAux___lambda__3(lean_object* x_1) { +lean_object* l_Lean_Meta_caseValueAux___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { -lean_object* x_2; -x_2 = l_Lean_Meta_caseValueAux___lambda__3___closed__3; -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__2___boxed), 1, 0); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__2() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__3___boxed), 1, 0); -return x_1; -} -} -lean_object* l_Lean_Meta_caseValueAux___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) { -_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_10; lean_object* x_11; lean_object* x_12; lean_object* x_43; lean_object* x_44; lean_object* x_45; uint8_t x_46; x_10 = l_Lean_Meta_FVarSubst_get(x_1, x_2); x_11 = l_Lean_Expr_fvarId_x21(x_10); lean_dec(x_10); -x_12 = l_Lean_Meta_caseValueAux___lambda__4___closed__1; +x_43 = lean_st_ref_get(x_8, x_9); +x_44 = lean_ctor_get(x_43, 0); +lean_inc(x_44); +x_45 = lean_ctor_get(x_44, 3); +lean_inc(x_45); +lean_dec(x_44); +x_46 = lean_ctor_get_uint8(x_45, sizeof(void*)*1); +lean_dec(x_45); +if (x_46 == 0) +{ +lean_object* x_47; +x_47 = lean_ctor_get(x_43, 1); +lean_inc(x_47); +lean_dec(x_43); +x_12 = x_47; +goto block_42; +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_48 = lean_ctor_get(x_43, 1); +lean_inc(x_48); +lean_dec(x_43); lean_inc(x_3); -x_13 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_3, x_12, x_5, x_6, x_7, x_8, x_9); +x_49 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_3, x_5, x_6, x_7, x_8, x_48); +x_50 = lean_ctor_get(x_49, 0); +lean_inc(x_50); +x_51 = lean_unbox(x_50); +lean_dec(x_50); +if (x_51 == 0) +{ +lean_object* x_52; +x_52 = lean_ctor_get(x_49, 1); +lean_inc(x_52); +lean_dec(x_49); +x_12 = x_52; +goto block_42; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_53 = lean_ctor_get(x_49, 1); +lean_inc(x_53); +lean_dec(x_49); +x_54 = l_Lean_Meta_caseValueAux___lambda__3___closed__4; +lean_inc(x_3); +x_55 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_3, x_54, x_5, x_6, x_7, x_8, x_53); +x_56 = lean_ctor_get(x_55, 1); +lean_inc(x_56); +lean_dec(x_55); +x_12 = x_56; +goto block_42; +} +} +block_42: +{ +lean_object* x_13; +lean_inc(x_5); +x_13 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(x_11, 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; lean_object* x_17; uint8_t x_18; x_14 = lean_ctor_get(x_13, 1); lean_inc(x_14); lean_dec(x_13); -lean_inc(x_5); -x_15 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(x_11, x_5, x_6, x_7, x_8, x_14); -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, 1); +x_15 = lean_st_ref_get(x_8, x_14); +x_16 = lean_ctor_get(x_15, 0); lean_inc(x_16); -lean_dec(x_15); -x_17 = l_Lean_Meta_caseValueAux___lambda__4___closed__2; -x_18 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_3, x_17, x_5, x_6, x_7, x_8, x_16); -lean_dec(x_5); -return x_18; -} -else +x_17 = lean_ctor_get(x_16, 3); +lean_inc(x_17); +lean_dec(x_16); +x_18 = lean_ctor_get_uint8(x_17, sizeof(void*)*1); +lean_dec(x_17); +if (x_18 == 0) { uint8_t x_19; lean_dec(x_5); @@ -1246,25 +1272,107 @@ lean_dec(x_3); x_19 = !lean_is_exclusive(x_15); if (x_19 == 0) { +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_15, 0); +lean_dec(x_20); +x_21 = lean_box(0); +lean_ctor_set(x_15, 0, x_21); return x_15; } else { -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_15, 0); -x_21 = lean_ctor_get(x_15, 1); -lean_inc(x_21); -lean_inc(x_20); +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_15, 1); +lean_inc(x_22); lean_dec(x_15); -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; +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; uint8_t x_28; +x_25 = lean_ctor_get(x_15, 1); +lean_inc(x_25); +lean_dec(x_15); +lean_inc(x_3); +x_26 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_3, x_5, x_6, x_7, x_8, x_25); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_unbox(x_27); +lean_dec(x_27); +if (x_28 == 0) +{ +uint8_t x_29; +lean_dec(x_5); +lean_dec(x_3); +x_29 = !lean_is_exclusive(x_26); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; +x_30 = lean_ctor_get(x_26, 0); +lean_dec(x_30); +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; +x_32 = lean_ctor_get(x_26, 1); +lean_inc(x_32); +lean_dec(x_26); +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 +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_26, 1); +lean_inc(x_35); +lean_dec(x_26); +x_36 = l_Lean_Meta_caseValueAux___lambda__3___closed__2; +x_37 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_3, x_36, x_5, x_6, x_7, x_8, x_35); +lean_dec(x_5); +return x_37; +} +} +} +else +{ +uint8_t x_38; +lean_dec(x_5); +lean_dec(x_3); +x_38 = !lean_is_exclusive(x_13); +if (x_38 == 0) +{ +return x_13; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_13, 0); +x_40 = lean_ctor_get(x_13, 1); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_13); +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; } } } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__1() { +} +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__1() { _start: { lean_object* x_1; @@ -1272,17 +1380,17 @@ x_1 = lean_mk_string("caseValue"); return x_1; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__2() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_caseValueAux___lambda__5___closed__1; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__3() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__3() { _start: { lean_object* x_1; @@ -1290,27 +1398,27 @@ x_1 = lean_mk_string("Not"); return x_1; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__4() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__4() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_caseValueAux___lambda__5___closed__3; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__3; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__5() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__5() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_caseValueAux___lambda__5___closed__4; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__4; x_3 = l_Lean_mkConst(x_2, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__6() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__6() { _start: { lean_object* x_1; @@ -1318,17 +1426,17 @@ x_1 = lean_mk_string("dite"); return x_1; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__7() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_caseValueAux___lambda__5___closed__6; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__6; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__8() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__8() { _start: { lean_object* x_1; lean_object* x_2; @@ -1337,21 +1445,43 @@ x_2 = lean_mk_empty_array_with_capacity(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__5___closed__9() { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__9() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_caseValueAux___lambda__5___closed__8; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__8; x_3 = lean_array_push(x_2, x_1); return x_3; } } -lean_object* l_Lean_Meta_caseValueAux___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) { +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__1___boxed), 7, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_caseValueAux___lambda__4___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Meta_isLevelDefEq___rarg___closed__2; +x_2 = l_Lean_Meta_caseValueAux___lambda__4___closed__10; +x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_3, 0, x_1); +lean_closure_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* l_Lean_Meta_caseValueAux___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_object* x_13; -x_12 = l_Lean_Meta_caseValueAux___lambda__5___closed__2; +x_12 = l_Lean_Meta_caseValueAux___lambda__4___closed__2; lean_inc(x_1); x_13 = l_Lean_Meta_checkNotAssigned(x_1, x_12, x_7, x_8, x_9, x_10, x_11); if (lean_obj_tag(x_13) == 0) @@ -1384,7 +1514,7 @@ lean_inc(x_20); x_21 = lean_ctor_get(x_19, 1); lean_inc(x_21); lean_dec(x_19); -x_22 = l_Lean_Meta_caseValueAux___lambda__5___closed__5; +x_22 = l_Lean_Meta_caseValueAux___lambda__4___closed__5; lean_inc(x_20); x_23 = l_Lean_mkApp(x_22, x_20); x_24 = 0; @@ -1417,12 +1547,12 @@ lean_ctor_set(x_35, 0, x_28); lean_inc(x_31); x_36 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_36, 0, x_31); -x_37 = l_Lean_Meta_caseValueAux___lambda__5___closed__9; +x_37 = l_Lean_Meta_caseValueAux___lambda__4___closed__9; x_38 = lean_array_push(x_37, x_34); x_39 = lean_array_push(x_38, x_33); x_40 = lean_array_push(x_39, x_35); x_41 = lean_array_push(x_40, x_36); -x_42 = l_Lean_Meta_caseValueAux___lambda__5___closed__7; +x_42 = l_Lean_Meta_caseValueAux___lambda__4___closed__7; lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); @@ -1436,7 +1566,7 @@ lean_inc(x_44); x_45 = lean_ctor_get(x_43, 1); lean_inc(x_45); lean_dec(x_43); -x_46 = l_Lean_Meta_assignExprMVar___at___private_Lean_Meta_InferType_4__getLevelImp___spec__3(x_1, x_44, x_7, x_8, x_9, x_10, x_45); +x_46 = l_Lean_Meta_assignExprMVar___at_Lean_Meta_admit___spec__2(x_1, x_44, x_7, x_8, x_9, x_10, x_45); x_47 = lean_ctor_get(x_46, 1); lean_inc(x_47); lean_dec(x_46); @@ -1504,275 +1634,279 @@ lean_dec(x_63); x_66 = !lean_is_exclusive(x_64); if (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_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_67 = lean_ctor_get(x_64, 0); x_68 = lean_ctor_get(x_64, 1); +x_69 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; lean_inc(x_67); -x_69 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__1___boxed), 2, 1); -lean_closure_set(x_69, 0, x_67); -x_70 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; -x_71 = lean_alloc_closure((void*)(l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2___boxed), 7, 2); -lean_closure_set(x_71, 0, x_70); -lean_closure_set(x_71, 1, x_69); +x_70 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__2___boxed), 8, 2); +lean_closure_set(x_70, 0, x_67); +lean_closure_set(x_70, 1, x_69); +x_71 = l_Lean_Meta_caseValueAux___lambda__4___closed__11; +x_72 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_72, 0, x_71); +lean_closure_set(x_72, 1, x_70); lean_inc(x_60); lean_inc(x_67); -x_72 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__4___boxed), 9, 3); -lean_closure_set(x_72, 0, x_67); -lean_closure_set(x_72, 1, x_60); -lean_closure_set(x_72, 2, x_70); -x_73 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_73, 0, x_71); -lean_closure_set(x_73, 1, x_72); +x_73 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__3___boxed), 9, 3); +lean_closure_set(x_73, 0, x_67); +lean_closure_set(x_73, 1, x_60); +lean_closure_set(x_73, 2, x_69); +x_74 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_74, 0, x_72); +lean_closure_set(x_74, 1, x_73); lean_inc(x_68); -x_74 = l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(x_68, x_73, x_7, x_8, x_9, x_10, x_65); -if (lean_obj_tag(x_74) == 0) +x_75 = l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(x_68, x_74, x_7, x_8, x_9, x_10, x_65); +if (lean_obj_tag(x_75) == 0) { -uint8_t x_75; -x_75 = !lean_is_exclusive(x_74); -if (x_75 == 0) +uint8_t x_76; +x_76 = !lean_is_exclusive(x_75); +if (x_76 == 0) { -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; -x_76 = lean_ctor_get(x_74, 0); -lean_dec(x_76); -x_77 = l_Lean_Meta_FVarSubst_get(x_67, x_60); -x_78 = l_Lean_Expr_fvarId_x21(x_77); +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_77 = lean_ctor_get(x_75, 0); lean_dec(x_77); -x_79 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_79, 0, x_68); -lean_ctor_set(x_79, 1, x_78); -lean_ctor_set(x_79, 2, x_67); +x_78 = l_Lean_Meta_FVarSubst_get(x_67, x_60); +x_79 = l_Lean_Expr_fvarId_x21(x_78); +lean_dec(x_78); +x_80 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_80, 0, x_68); +lean_ctor_set(x_80, 1, x_79); +lean_ctor_set(x_80, 2, x_67); lean_ctor_set(x_64, 1, x_55); -lean_ctor_set(x_64, 0, x_79); -lean_ctor_set(x_74, 0, x_64); -return x_74; +lean_ctor_set(x_64, 0, x_80); +lean_ctor_set(x_75, 0, x_64); +return x_75; } else { -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; -x_80 = lean_ctor_get(x_74, 1); -lean_inc(x_80); -lean_dec(x_74); -x_81 = l_Lean_Meta_FVarSubst_get(x_67, x_60); -x_82 = l_Lean_Expr_fvarId_x21(x_81); -lean_dec(x_81); -x_83 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_83, 0, x_68); -lean_ctor_set(x_83, 1, x_82); -lean_ctor_set(x_83, 2, x_67); +lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; +x_81 = lean_ctor_get(x_75, 1); +lean_inc(x_81); +lean_dec(x_75); +x_82 = l_Lean_Meta_FVarSubst_get(x_67, x_60); +x_83 = l_Lean_Expr_fvarId_x21(x_82); +lean_dec(x_82); +x_84 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_84, 0, x_68); +lean_ctor_set(x_84, 1, x_83); +lean_ctor_set(x_84, 2, x_67); lean_ctor_set(x_64, 1, x_55); -lean_ctor_set(x_64, 0, x_83); -x_84 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_84, 0, x_64); -lean_ctor_set(x_84, 1, x_80); -return x_84; +lean_ctor_set(x_64, 0, x_84); +x_85 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_85, 0, x_64); +lean_ctor_set(x_85, 1, x_81); +return x_85; } } else { -uint8_t x_85; +uint8_t x_86; lean_free_object(x_64); lean_dec(x_68); lean_dec(x_67); lean_dec(x_60); lean_dec(x_55); -x_85 = !lean_is_exclusive(x_74); -if (x_85 == 0) +x_86 = !lean_is_exclusive(x_75); +if (x_86 == 0) { -return x_74; +return x_75; } else { -lean_object* x_86; lean_object* x_87; lean_object* x_88; -x_86 = lean_ctor_get(x_74, 0); -x_87 = lean_ctor_get(x_74, 1); +lean_object* x_87; lean_object* x_88; lean_object* x_89; +x_87 = lean_ctor_get(x_75, 0); +x_88 = lean_ctor_get(x_75, 1); +lean_inc(x_88); lean_inc(x_87); -lean_inc(x_86); -lean_dec(x_74); -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; +lean_dec(x_75); +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_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_89 = lean_ctor_get(x_64, 0); -x_90 = lean_ctor_get(x_64, 1); +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; +x_90 = lean_ctor_get(x_64, 0); +x_91 = lean_ctor_get(x_64, 1); +lean_inc(x_91); lean_inc(x_90); -lean_inc(x_89); lean_dec(x_64); -lean_inc(x_89); -x_91 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__1___boxed), 2, 1); -lean_closure_set(x_91, 0, x_89); x_92 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; -x_93 = lean_alloc_closure((void*)(l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2___boxed), 7, 2); -lean_closure_set(x_93, 0, x_92); -lean_closure_set(x_93, 1, x_91); -lean_inc(x_60); -lean_inc(x_89); -x_94 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__4___boxed), 9, 3); -lean_closure_set(x_94, 0, x_89); -lean_closure_set(x_94, 1, x_60); -lean_closure_set(x_94, 2, x_92); -x_95 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_95, 0, x_93); -lean_closure_set(x_95, 1, x_94); lean_inc(x_90); -x_96 = l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(x_90, x_95, x_7, x_8, x_9, x_10, x_65); -if (lean_obj_tag(x_96) == 0) +x_93 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__2___boxed), 8, 2); +lean_closure_set(x_93, 0, x_90); +lean_closure_set(x_93, 1, x_92); +x_94 = l_Lean_Meta_caseValueAux___lambda__4___closed__11; +x_95 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_95, 0, x_94); +lean_closure_set(x_95, 1, x_93); +lean_inc(x_60); +lean_inc(x_90); +x_96 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__3___boxed), 9, 3); +lean_closure_set(x_96, 0, x_90); +lean_closure_set(x_96, 1, x_60); +lean_closure_set(x_96, 2, x_92); +x_97 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_97, 0, x_95); +lean_closure_set(x_97, 1, x_96); +lean_inc(x_91); +x_98 = l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(x_91, x_97, x_7, x_8, x_9, x_10, x_65); +if (lean_obj_tag(x_98) == 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; -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; +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; +x_99 = lean_ctor_get(x_98, 1); +lean_inc(x_99); +if (lean_is_exclusive(x_98)) { + lean_ctor_release(x_98, 0); + lean_ctor_release(x_98, 1); + x_100 = x_98; } else { - lean_dec_ref(x_96); - x_98 = lean_box(0); + lean_dec_ref(x_98); + x_100 = lean_box(0); } -x_99 = l_Lean_Meta_FVarSubst_get(x_89, x_60); -x_100 = l_Lean_Expr_fvarId_x21(x_99); -lean_dec(x_99); -x_101 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_101, 0, x_90); -lean_ctor_set(x_101, 1, x_100); -lean_ctor_set(x_101, 2, x_89); -x_102 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_102, 0, x_101); -lean_ctor_set(x_102, 1, x_55); -if (lean_is_scalar(x_98)) { - x_103 = lean_alloc_ctor(0, 2, 0); +x_101 = l_Lean_Meta_FVarSubst_get(x_90, x_60); +x_102 = l_Lean_Expr_fvarId_x21(x_101); +lean_dec(x_101); +x_103 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_103, 0, x_91); +lean_ctor_set(x_103, 1, x_102); +lean_ctor_set(x_103, 2, x_90); +x_104 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_104, 0, x_103); +lean_ctor_set(x_104, 1, x_55); +if (lean_is_scalar(x_100)) { + x_105 = lean_alloc_ctor(0, 2, 0); } else { - x_103 = x_98; + x_105 = x_100; } -lean_ctor_set(x_103, 0, x_102); -lean_ctor_set(x_103, 1, x_97); -return x_103; +lean_ctor_set(x_105, 0, x_104); +lean_ctor_set(x_105, 1, x_99); +return x_105; } else { -lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; +lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; +lean_dec(x_91); lean_dec(x_90); -lean_dec(x_89); lean_dec(x_60); lean_dec(x_55); -x_104 = lean_ctor_get(x_96, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_96, 1); -lean_inc(x_105); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_106 = x_96; +x_106 = lean_ctor_get(x_98, 0); +lean_inc(x_106); +x_107 = lean_ctor_get(x_98, 1); +lean_inc(x_107); +if (lean_is_exclusive(x_98)) { + lean_ctor_release(x_98, 0); + lean_ctor_release(x_98, 1); + x_108 = x_98; } else { - lean_dec_ref(x_96); - x_106 = lean_box(0); + lean_dec_ref(x_98); + x_108 = lean_box(0); } -if (lean_is_scalar(x_106)) { - x_107 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_108)) { + x_109 = lean_alloc_ctor(1, 2, 0); } else { - x_107 = x_106; + x_109 = x_108; } -lean_ctor_set(x_107, 0, x_104); -lean_ctor_set(x_107, 1, x_105); -return x_107; +lean_ctor_set(x_109, 0, x_106); +lean_ctor_set(x_109, 1, x_107); +return x_109; } } } else { -uint8_t x_108; +uint8_t x_110; lean_dec(x_60); lean_dec(x_55); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -x_108 = !lean_is_exclusive(x_63); -if (x_108 == 0) +x_110 = !lean_is_exclusive(x_63); +if (x_110 == 0) { return x_63; } else { -lean_object* x_109; lean_object* x_110; lean_object* x_111; -x_109 = lean_ctor_get(x_63, 0); -x_110 = lean_ctor_get(x_63, 1); -lean_inc(x_110); -lean_inc(x_109); +lean_object* x_111; lean_object* x_112; lean_object* x_113; +x_111 = lean_ctor_get(x_63, 0); +x_112 = lean_ctor_get(x_63, 1); +lean_inc(x_112); +lean_inc(x_111); lean_dec(x_63); -x_111 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_111, 0, x_109); -lean_ctor_set(x_111, 1, x_110); -return x_111; +x_113 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_113, 0, x_111); +lean_ctor_set(x_113, 1, x_112); +return x_113; } } } else { -uint8_t x_112; +uint8_t x_114; lean_dec(x_55); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_5); -x_112 = !lean_is_exclusive(x_57); -if (x_112 == 0) +x_114 = !lean_is_exclusive(x_57); +if (x_114 == 0) { return x_57; } else { -lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_113 = lean_ctor_get(x_57, 0); -x_114 = lean_ctor_get(x_57, 1); -lean_inc(x_114); -lean_inc(x_113); +lean_object* x_115; lean_object* x_116; lean_object* x_117; +x_115 = lean_ctor_get(x_57, 0); +x_116 = lean_ctor_get(x_57, 1); +lean_inc(x_116); +lean_inc(x_115); lean_dec(x_57); -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; +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; } } } else { -uint8_t x_116; +uint8_t x_118; lean_dec(x_28); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); lean_dec(x_5); -x_116 = !lean_is_exclusive(x_50); -if (x_116 == 0) +x_118 = !lean_is_exclusive(x_50); +if (x_118 == 0) { return x_50; } else { -lean_object* x_117; lean_object* x_118; lean_object* x_119; -x_117 = lean_ctor_get(x_50, 0); -x_118 = lean_ctor_get(x_50, 1); -lean_inc(x_118); -lean_inc(x_117); +lean_object* x_119; lean_object* x_120; lean_object* x_121; +x_119 = lean_ctor_get(x_50, 0); +x_120 = lean_ctor_get(x_50, 1); +lean_inc(x_120); +lean_inc(x_119); lean_dec(x_50); -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; +x_121 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_121, 0, x_119); +lean_ctor_set(x_121, 1, x_120); +return x_121; } } } else { -uint8_t x_120; +uint8_t x_122; lean_dec(x_31); lean_dec(x_28); lean_dec(x_10); @@ -1781,29 +1915,29 @@ lean_dec(x_8); lean_dec(x_7); lean_dec(x_5); lean_dec(x_1); -x_120 = !lean_is_exclusive(x_43); -if (x_120 == 0) +x_122 = !lean_is_exclusive(x_43); +if (x_122 == 0) { return x_43; } else { -lean_object* x_121; lean_object* x_122; lean_object* x_123; -x_121 = lean_ctor_get(x_43, 0); -x_122 = lean_ctor_get(x_43, 1); -lean_inc(x_122); -lean_inc(x_121); +lean_object* x_123; lean_object* x_124; lean_object* x_125; +x_123 = lean_ctor_get(x_43, 0); +x_124 = lean_ctor_get(x_43, 1); +lean_inc(x_124); +lean_inc(x_123); lean_dec(x_43); -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; +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; } } } else { -uint8_t x_124; +uint8_t x_126; lean_dec(x_16); lean_dec(x_10); lean_dec(x_9); @@ -1813,29 +1947,29 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_124 = !lean_is_exclusive(x_19); -if (x_124 == 0) +x_126 = !lean_is_exclusive(x_19); +if (x_126 == 0) { return x_19; } else { -lean_object* x_125; lean_object* x_126; lean_object* x_127; -x_125 = lean_ctor_get(x_19, 0); -x_126 = lean_ctor_get(x_19, 1); -lean_inc(x_126); -lean_inc(x_125); +lean_object* x_127; lean_object* x_128; lean_object* x_129; +x_127 = lean_ctor_get(x_19, 0); +x_128 = lean_ctor_get(x_19, 1); +lean_inc(x_128); +lean_inc(x_127); lean_dec(x_19); -x_127 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_127, 0, x_125); -lean_ctor_set(x_127, 1, x_126); -return x_127; +x_129 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_129, 0, x_127); +lean_ctor_set(x_129, 1, x_128); +return x_129; } } } else { -uint8_t x_128; +uint8_t x_130; lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); @@ -1846,29 +1980,29 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_128 = !lean_is_exclusive(x_15); -if (x_128 == 0) +x_130 = !lean_is_exclusive(x_15); +if (x_130 == 0) { return x_15; } else { -lean_object* x_129; lean_object* x_130; lean_object* x_131; -x_129 = lean_ctor_get(x_15, 0); -x_130 = lean_ctor_get(x_15, 1); -lean_inc(x_130); -lean_inc(x_129); +lean_object* x_131; lean_object* x_132; lean_object* x_133; +x_131 = lean_ctor_get(x_15, 0); +x_132 = lean_ctor_get(x_15, 1); +lean_inc(x_132); +lean_inc(x_131); lean_dec(x_15); -x_131 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_131, 0, x_129); -lean_ctor_set(x_131, 1, x_130); -return x_131; +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 { -uint8_t x_132; +uint8_t x_134; lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); @@ -1879,23 +2013,23 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_132 = !lean_is_exclusive(x_13); -if (x_132 == 0) +x_134 = !lean_is_exclusive(x_13); +if (x_134 == 0) { return x_13; } else { -lean_object* x_133; lean_object* x_134; lean_object* x_135; -x_133 = lean_ctor_get(x_13, 0); -x_134 = lean_ctor_get(x_13, 1); -lean_inc(x_134); -lean_inc(x_133); +lean_object* x_135; lean_object* x_136; lean_object* x_137; +x_135 = lean_ctor_get(x_13, 0); +x_136 = lean_ctor_get(x_13, 1); +lean_inc(x_136); +lean_inc(x_135); lean_dec(x_13); -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; +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; } } } @@ -1908,7 +2042,7 @@ lean_inc(x_1); x_11 = lean_alloc_closure((void*)(l_Lean_Meta_getMVarTag___boxed), 6, 1); lean_closure_set(x_11, 0, x_1); lean_inc(x_1); -x_12 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__5), 11, 5); +x_12 = lean_alloc_closure((void*)(l_Lean_Meta_caseValueAux___lambda__4), 11, 5); lean_closure_set(x_12, 0, x_1); lean_closure_set(x_12, 1, x_2); lean_closure_set(x_12, 2, x_3); @@ -1921,49 +2055,39 @@ x_14 = l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(x_1, x_ return x_14; } } -lean_object* l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_caseValueAux___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: { -uint8_t x_3; lean_object* x_4; -x_3 = lean_unbox(x_1); -lean_dec(x_1); -x_4 = l_List_toStringAux___main___at_Lean_Meta_caseValueAux___spec__3(x_3, x_2); -return x_4; -} -} -lean_object* l_Lean_Meta_caseValueAux___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_caseValueAux___lambda__1(x_1, x_2); +lean_object* x_8; +x_8 = l_Lean_Meta_caseValueAux___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_3; +return x_8; } } -lean_object* l_Lean_Meta_caseValueAux___lambda__2___boxed(lean_object* x_1) { +lean_object* l_Lean_Meta_caseValueAux___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) { _start: { -lean_object* x_2; -x_2 = l_Lean_Meta_caseValueAux___lambda__2(x_1); +uint8_t x_9; lean_object* x_10; +x_9 = lean_unbox(x_3); +lean_dec(x_3); +x_10 = l_Lean_Meta_caseValueAux___lambda__2(x_1, x_2, x_9, 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_1); -return x_2; +return x_10; } } -lean_object* l_Lean_Meta_caseValueAux___lambda__3___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Meta_caseValueAux___lambda__3(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_caseValueAux___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* l_Lean_Meta_caseValueAux___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) { _start: { lean_object* x_10; -x_10 = l_Lean_Meta_caseValueAux___lambda__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_Meta_caseValueAux___lambda__3(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); @@ -2173,6 +2297,22 @@ return x_38; } } } +static lean_object* _init_l_Lean_Meta_CaseValuesSubgoal_newHs___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Array_empty___closed__1; +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_CaseValuesSubgoal_subst___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} static lean_object* _init_l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1() { _start: { @@ -2195,7 +2335,120 @@ x_1 = l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1; return x_1; } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___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) { +lean_object* l_Lean_Meta_caseValues_loop_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValues_loop_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValues_loop_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__3___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValues_loop_match__3___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__4___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: +{ +if (lean_obj_tag(x_3) == 0) +{ +lean_object* x_8; +lean_dec(x_7); +x_8 = lean_apply_4(x_6, x_1, x_2, x_4, x_5); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +lean_dec(x_6); +x_9 = lean_ctor_get(x_3, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_3, 1); +lean_inc(x_10); +lean_dec(x_3); +x_11 = lean_apply_6(x_7, x_1, x_2, x_9, x_10, x_4, x_5); +return x_11; +} +} +} +lean_object* l_Lean_Meta_caseValues_loop_match__4(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_caseValues_loop_match__4___rarg), 7, 0); +return x_2; +} +} +lean_object* l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___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; uint8_t x_12; @@ -2285,7 +2538,7 @@ goto _start; } } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__1() { _start: { lean_object* x_1; @@ -2293,17 +2546,17 @@ x_1 = lean_mk_string("caseValues"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___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_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1; +x_2 = l_Lean_Meta_caseValues_loop___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__3() { _start: { lean_object* x_1; @@ -2311,27 +2564,27 @@ x_1 = lean_mk_string("list of values must not be empty"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3; +x_1 = l_Lean_Meta_caseValues_loop___closed__3; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__5() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4; +x_1 = l_Lean_Meta_caseValues_loop___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___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__6() { _start: { lean_object* x_1; @@ -2339,17 +2592,17 @@ x_1 = lean_mk_string("case"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7() { +static lean_object* _init_l_Lean_Meta_caseValues_loop___closed__7() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6; +x_2 = l_Lean_Meta_caseValues_loop___closed__6; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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* l_Lean_Meta_caseValues_loop(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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_5) == 0) @@ -2360,8 +2613,8 @@ lean_dec(x_6); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_13 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2; -x_14 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5; +x_13 = l_Lean_Meta_caseValues_loop___closed__2; +x_14 = l_Lean_Meta_caseValues_loop___closed__5; x_15 = lean_box(0); x_16 = l_Lean_Meta_throwTacticEx___rarg(x_13, x_4, x_14, x_15, x_8, x_9, x_10, x_11, x_12); lean_dec(x_11); @@ -2379,15 +2632,15 @@ x_18 = lean_ctor_get(x_5, 1); lean_inc(x_18); lean_dec(x_5); lean_inc(x_3); -lean_inc(x_1); -x_19 = l_Lean_Name_appendIndexAfter(x_1, x_3); +lean_inc(x_2); +x_19 = l_Lean_Name_appendIndexAfter(x_2, x_3); x_20 = lean_box(0); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_2); -x_21 = l_Lean_Meta_caseValueAux(x_4, x_2, x_17, x_19, x_20, x_8, x_9, x_10, x_11, x_12); +lean_inc(x_1); +x_21 = l_Lean_Meta_caseValueAux(x_4, x_1, x_17, x_19, x_20, x_8, x_9, x_10, x_11, x_12); 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; lean_object* x_29; lean_object* x_30; lean_object* x_31; @@ -2407,7 +2660,7 @@ x_27 = lean_ctor_get(x_23, 1); lean_inc(x_27); x_28 = lean_ctor_get(x_23, 2); lean_inc(x_28); -x_29 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7; +x_29 = l_Lean_Meta_caseValues_loop___closed__7; lean_inc(x_3); x_30 = l_Lean_Name_appendIndexAfter(x_29, x_3); lean_inc(x_26); @@ -2423,7 +2676,7 @@ lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -x_34 = l_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___spec__1(x_6, x_23, x_6, x_33, x_26, x_8, x_9, x_10, x_11, x_32); +x_34 = l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___spec__1(x_6, x_23, x_6, x_33, x_26, x_8, x_9, x_10, x_11, x_32); lean_dec(x_23); if (lean_obj_tag(x_34) == 0) { @@ -2653,25 +2906,17 @@ return x_78; } } } -lean_object* l_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___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* l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___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_Array_iterateMAux___main___at___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_11 = l_Array_iterateMAux___main___at_Lean_Meta_caseValues_loop___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_3); lean_dec(x_2); lean_dec(x_1); return x_11; } } -lean_object* l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -return x_13; -} -} lean_object* l_Lean_Meta_caseValues(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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: { @@ -2679,7 +2924,7 @@ lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_10 = l_Array_toList___rarg(x_3); x_11 = lean_unsigned_to_nat(1u); x_12 = l_Array_empty___closed__1; -x_13 = l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main(x_4, x_2, x_11, x_1, x_10, x_12, x_12, x_5, x_6, x_7, x_8, x_9); +x_13 = l_Lean_Meta_caseValues_loop(x_2, x_4, x_11, x_1, x_10, x_12, x_12, x_5, x_6, x_7, x_8, x_9); return x_13; } } @@ -2709,50 +2954,46 @@ lean_dec_ref(res); res = initialize_Lean_Meta_Tactic_Clear(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Meta_CaseValueSubgoal_subst___default = _init_l_Lean_Meta_CaseValueSubgoal_subst___default(); +lean_mark_persistent(l_Lean_Meta_CaseValueSubgoal_subst___default); l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1 = _init_l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1(); lean_mark_persistent(l_Lean_Meta_CaseValueSubgoal_inhabited___closed__1); l_Lean_Meta_CaseValueSubgoal_inhabited = _init_l_Lean_Meta_CaseValueSubgoal_inhabited(); lean_mark_persistent(l_Lean_Meta_CaseValueSubgoal_inhabited); -l_Lean_Meta_caseValueAux___lambda__1___closed__1 = _init_l_Lean_Meta_caseValueAux___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__1___closed__1); -l_Lean_Meta_caseValueAux___lambda__1___closed__2 = _init_l_Lean_Meta_caseValueAux___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__1___closed__2); -l_Lean_Meta_caseValueAux___lambda__1___closed__3 = _init_l_Lean_Meta_caseValueAux___lambda__1___closed__3(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__1___closed__3); l_Lean_Meta_caseValueAux___lambda__2___closed__1 = _init_l_Lean_Meta_caseValueAux___lambda__2___closed__1(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__2___closed__1); l_Lean_Meta_caseValueAux___lambda__2___closed__2 = _init_l_Lean_Meta_caseValueAux___lambda__2___closed__2(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__2___closed__2); -l_Lean_Meta_caseValueAux___lambda__2___closed__3 = _init_l_Lean_Meta_caseValueAux___lambda__2___closed__3(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__2___closed__3); l_Lean_Meta_caseValueAux___lambda__3___closed__1 = _init_l_Lean_Meta_caseValueAux___lambda__3___closed__1(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__3___closed__1); l_Lean_Meta_caseValueAux___lambda__3___closed__2 = _init_l_Lean_Meta_caseValueAux___lambda__3___closed__2(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__3___closed__2); l_Lean_Meta_caseValueAux___lambda__3___closed__3 = _init_l_Lean_Meta_caseValueAux___lambda__3___closed__3(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__3___closed__3); +l_Lean_Meta_caseValueAux___lambda__3___closed__4 = _init_l_Lean_Meta_caseValueAux___lambda__3___closed__4(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__3___closed__4); l_Lean_Meta_caseValueAux___lambda__4___closed__1 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__1(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__1); l_Lean_Meta_caseValueAux___lambda__4___closed__2 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__2(); lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__2); -l_Lean_Meta_caseValueAux___lambda__5___closed__1 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__1(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__1); -l_Lean_Meta_caseValueAux___lambda__5___closed__2 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__2(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__2); -l_Lean_Meta_caseValueAux___lambda__5___closed__3 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__3(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__3); -l_Lean_Meta_caseValueAux___lambda__5___closed__4 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__4(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__4); -l_Lean_Meta_caseValueAux___lambda__5___closed__5 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__5(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__5); -l_Lean_Meta_caseValueAux___lambda__5___closed__6 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__6(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__6); -l_Lean_Meta_caseValueAux___lambda__5___closed__7 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__7(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__7); -l_Lean_Meta_caseValueAux___lambda__5___closed__8 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__8(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__8); -l_Lean_Meta_caseValueAux___lambda__5___closed__9 = _init_l_Lean_Meta_caseValueAux___lambda__5___closed__9(); -lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__5___closed__9); +l_Lean_Meta_caseValueAux___lambda__4___closed__3 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__3(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__3); +l_Lean_Meta_caseValueAux___lambda__4___closed__4 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__4(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__4); +l_Lean_Meta_caseValueAux___lambda__4___closed__5 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__5(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__5); +l_Lean_Meta_caseValueAux___lambda__4___closed__6 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__6(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__6); +l_Lean_Meta_caseValueAux___lambda__4___closed__7 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__7(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__7); +l_Lean_Meta_caseValueAux___lambda__4___closed__8 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__8(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__8); +l_Lean_Meta_caseValueAux___lambda__4___closed__9 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__9(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__9); +l_Lean_Meta_caseValueAux___lambda__4___closed__10 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__10(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__10); +l_Lean_Meta_caseValueAux___lambda__4___closed__11 = _init_l_Lean_Meta_caseValueAux___lambda__4___closed__11(); +lean_mark_persistent(l_Lean_Meta_caseValueAux___lambda__4___closed__11); l_Lean_Meta_caseValue___closed__1 = _init_l_Lean_Meta_caseValue___closed__1(); lean_mark_persistent(l_Lean_Meta_caseValue___closed__1); l_Lean_Meta_caseValue___closed__2 = _init_l_Lean_Meta_caseValue___closed__2(); @@ -2765,24 +3006,28 @@ l_Lean_Meta_caseValue___closed__5 = _init_l_Lean_Meta_caseValue___closed__5(); lean_mark_persistent(l_Lean_Meta_caseValue___closed__5); l_Lean_Meta_caseValue___closed__6 = _init_l_Lean_Meta_caseValue___closed__6(); lean_mark_persistent(l_Lean_Meta_caseValue___closed__6); +l_Lean_Meta_CaseValuesSubgoal_newHs___default = _init_l_Lean_Meta_CaseValuesSubgoal_newHs___default(); +lean_mark_persistent(l_Lean_Meta_CaseValuesSubgoal_newHs___default); +l_Lean_Meta_CaseValuesSubgoal_subst___default = _init_l_Lean_Meta_CaseValuesSubgoal_subst___default(); +lean_mark_persistent(l_Lean_Meta_CaseValuesSubgoal_subst___default); l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1 = _init_l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1(); lean_mark_persistent(l_Lean_Meta_CaseValueSubgoals_inhabited___closed__1); l_Lean_Meta_CaseValueSubgoals_inhabited = _init_l_Lean_Meta_CaseValueSubgoals_inhabited(); lean_mark_persistent(l_Lean_Meta_CaseValueSubgoals_inhabited); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__1); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__2); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__3); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__4); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__5); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__6); -l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7 = _init_l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7(); -lean_mark_persistent(l___private_Lean_Meta_Match_CaseValues_1__caseValuesAux___main___closed__7); +l_Lean_Meta_caseValues_loop___closed__1 = _init_l_Lean_Meta_caseValues_loop___closed__1(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__1); +l_Lean_Meta_caseValues_loop___closed__2 = _init_l_Lean_Meta_caseValues_loop___closed__2(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__2); +l_Lean_Meta_caseValues_loop___closed__3 = _init_l_Lean_Meta_caseValues_loop___closed__3(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__3); +l_Lean_Meta_caseValues_loop___closed__4 = _init_l_Lean_Meta_caseValues_loop___closed__4(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__4); +l_Lean_Meta_caseValues_loop___closed__5 = _init_l_Lean_Meta_caseValues_loop___closed__5(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__5); +l_Lean_Meta_caseValues_loop___closed__6 = _init_l_Lean_Meta_caseValues_loop___closed__6(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__6); +l_Lean_Meta_caseValues_loop___closed__7 = _init_l_Lean_Meta_caseValues_loop___closed__7(); +lean_mark_persistent(l_Lean_Meta_caseValues_loop___closed__7); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Meta/Match/MVarRenaming.c b/stage0/stdlib/Lean/Meta/Match/MVarRenaming.c index d5c3b2e076..d330e78f0b 100644 --- a/stage0/stdlib/Lean/Meta/Match/MVarRenaming.c +++ b/stage0/stdlib/Lean/Meta/Match/MVarRenaming.c @@ -28,9 +28,13 @@ lean_object* l_Lean_Meta_MVarRenaming_insert(lean_object*, lean_object*, lean_ob extern lean_object* l_Lean_Name_inhabited; uint8_t l_Lean_Meta_MVarRenaming_isEmpty(lean_object*); lean_object* l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___at_Lean_Meta_MVarRenaming_apply___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MVarRenaming_apply_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MVarRenaming_map___default; +lean_object* l_Lean_Meta_MVarRenaming_apply_match__1(lean_object*); lean_object* l_Std_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_MVarRenaming_find_x21___boxed(lean_object*, lean_object*); lean_object* l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___at_Lean_Meta_MVarRenaming_apply___spec__1(lean_object*, size_t, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MVarRenaming_apply_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_find___main___at_Lean_Meta_MVarRenaming_find_x3f___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_MVarRenaming_find_x3f___boxed(lean_object*, lean_object*); lean_object* lean_expr_update_let(lean_object*, lean_object*, lean_object*, lean_object*); @@ -44,10 +48,19 @@ size_t lean_ptr_addr(lean_object*); lean_object* l_Lean_Meta_MVarRenaming_find_x21(lean_object*, lean_object*); uint8_t l_Lean_Expr_hasMVar(lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); +lean_object* l_Lean_Meta_MVarRenaming_apply_match__2(lean_object*); lean_object* lean_expr_update_lambda(lean_object*, uint8_t, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___closed__1; lean_object* lean_expr_update_app(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_ReplaceImpl_initCache; +static lean_object* _init_l_Lean_Meta_MVarRenaming_map___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} uint8_t l_Lean_Meta_MVarRenaming_isEmpty(lean_object* x_1) { _start: { @@ -187,6 +200,69 @@ x_4 = l_Std_RBNode_insert___at_Lean_NameMap_insert___spec__1___rarg(x_1, x_2, x_ return x_4; } } +lean_object* l_Lean_Meta_MVarRenaming_apply_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l_Lean_Meta_MVarRenaming_apply_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_MVarRenaming_apply_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_MVarRenaming_apply_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 2) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l_Lean_Meta_MVarRenaming_apply_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_MVarRenaming_apply_match__2___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___at_Lean_Meta_MVarRenaming_apply___spec__1(lean_object* x_1, size_t x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -675,28 +751,63 @@ return x_165; lean_object* l_Lean_Meta_MVarRenaming_apply(lean_object* x_1, lean_object* x_2) { _start: { -uint8_t x_3; -x_3 = l_Lean_Expr_hasMVar(x_2); +uint8_t x_3; uint8_t x_13; +x_13 = l_Lean_Expr_hasMVar(x_2); +if (x_13 == 0) +{ +uint8_t x_14; +x_14 = 1; +x_3 = x_14; +goto block_12; +} +else +{ +uint8_t x_15; +x_15 = 0; +x_3 = x_15; +goto block_12; +} +block_12: +{ if (x_3 == 0) { -return x_2; -} -else -{ +uint8_t x_4; if (lean_obj_tag(x_1) == 0) { -return x_2; +uint8_t x_10; +x_10 = 1; +x_4 = x_10; +goto block_9; } else { -size_t x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_4 = 8192; -x_5 = l_Lean_Expr_ReplaceImpl_initCache; -x_6 = l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___at_Lean_Meta_MVarRenaming_apply___spec__1(x_1, x_4, x_2, x_5); -x_7 = lean_ctor_get(x_6, 0); -lean_inc(x_7); -lean_dec(x_6); -return x_7; +uint8_t x_11; +x_11 = 0; +x_4 = x_11; +goto block_9; +} +block_9: +{ +if (x_4 == 0) +{ +size_t x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_5 = 8192; +x_6 = l_Lean_Expr_ReplaceImpl_initCache; +x_7 = l_Lean_Expr_ReplaceImpl_replaceUnsafeM___main___at_Lean_Meta_MVarRenaming_apply___spec__1(x_1, x_5, x_2, x_6); +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +lean_dec(x_7); +return x_8; +} +else +{ +return x_2; +} +} +} +else +{ +return x_2; } } } @@ -734,6 +845,8 @@ lean_dec_ref(res); res = initialize_Lean_Util_ReplaceExpr(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +l_Lean_Meta_MVarRenaming_map___default = _init_l_Lean_Meta_MVarRenaming_map___default(); +lean_mark_persistent(l_Lean_Meta_MVarRenaming_map___default); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Meta/Match/Match.c b/stage0/stdlib/Lean/Meta/Match/Match.c index cc95b3be93..70012dfdae 100644 --- a/stage0/stdlib/Lean/Meta/Match/Match.c +++ b/stage0/stdlib/Lean/Meta/Match/Match.c @@ -15,836 +15,999 @@ extern "C" { #endif lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__5(size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_reverse___rarg(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkHole___closed__3; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_fmt___at_Lean_Position_Lean_HasFormat___spec__1(lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux(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_Match_Example_applyFVarSubst(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___closed__1; -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___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*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2(lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg_match__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern_match__1(lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isMatcher___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(lean_object*, lean_object*, lean_object*); lean_object* lean_array_set(lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_8__hasValPattern___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__3___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__4(lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3; size_t l_USize_add(size_t, size_t); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_20__processVariable___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; lean_object* l_Lean_Expr_mvarId_x21(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_25__getInductiveVal_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2; +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__2(lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__7; +lean_object* l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__15; lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__3(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_isNatLit(lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___boxed(lean_object*); lean_object* l_Std_AssocList_replace___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__11(lean_object*, lean_object*, lean_object*); extern lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5___boxed(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__8(lean_object*, lean_object*); +lean_object* l_Lean_stringToMessageData(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_occurs_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2; lean_object* lean_mk_empty_array_with_capacity(lean_object*); lean_object* l_Lean_mkSort(lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_13__isConstructorTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone___boxed(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_addParenHeuristic___closed__2; lean_object* l_Lean_Meta_Match_MatcherInfo_numAlts___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_20__processVariable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2; extern lean_object* l___private_Lean_Meta_ExprDefEq_12__addAssignmentInfo___closed__4; lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___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_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6; extern lean_object* l_Lean_withIncRecDepth___rarg___lambda__2___closed__2; extern lean_object* l_Lean_Meta_setInlineAttribute___rarg___closed__2; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_userName(lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7___boxed(lean_object*, lean_object*); -lean_object* l_unreachable_x21___rarg(lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1(uint8_t, uint8_t, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1; -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Expr_3__getAppArgsAux___main(lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_MetavarContext_instantiateMVars(lean_object*, lean_object*); lean_object* l_Lean_Meta_isExprDefEq___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_isExprDefEqGuarded___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___boxed(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(lean_object*, lean_object*); -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1; +lean_object* l_Lean_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2; extern lean_object* l_Lean_MessageData_ofList___closed__3; uint8_t l_USize_decEq(size_t, size_t); -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_29__collectValues___spec__1(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_uget(lean_object*, size_t); -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1(lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___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*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_List_repr___rarg___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3; +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern_match__1(lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__1(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_32__collectArraySizes(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2; +lean_object* l_Lean_MetavarContext_addLevelMVarDecl(lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_36__expandNatValuePattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop(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_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1(uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___boxed(lean_object*); lean_object* l_Lean_Format_pretty(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1; -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1; +lean_object* l_Lean_Meta_Match_Unify_unify___closed__3; uint8_t lean_name_eq(lean_object*, lean_object*); +lean_object* l___private_Lean_HeadIndex_1__headNumArgsAux___main(lean_object*, lean_object*); lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__3(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___main___boxed(lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__8(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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition_match__1(lean_object*); lean_object* l___private_Lean_Util_Trace_4__addNode___at_Lean_Meta_isLevelDefEq___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_MatcherApp_addArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3; +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toExpr_match__1(lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1(uint8_t, lean_object*); +lean_object* l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_generalizeIndices___spec__1___rarg(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_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1; lean_object* l_Lean_Meta_Match_Unify_isAltVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_7__hasCtorPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1___boxed(lean_object*, lean_object*); lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___at_Lean_Meta_Match_Extension_mkExtension___spec__5(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_16__isNatValueTransition___boxed(lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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_Meta_Match_mkMatcher___lambda__4___closed__2; +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_registerInternalExceptionId___closed__2; +extern lean_object* l_Prod_HasRepr___rarg___closed__1; lean_object* l_Array_extract___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_19__processAsPattern___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___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_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__5(lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1; lean_object* l_Lean_EnvExtensionInterfaceUnsafe_registerExt___rarg(lean_object*, lean_object*); -uint8_t l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7; +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__1(lean_object*); size_t l_USize_sub(size_t, size_t); extern lean_object* l_Array_empty___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_environment_find(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__3(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___boxed(lean_object*); lean_object* l_Lean_Meta_isExprDefEqAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1(uint8_t, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition_match__1(lean_object*); uint8_t l_Lean_checkTraceOption(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__4; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1(uint8_t, lean_object*); lean_object* l_Std_HashMapImp_insert___at_Lean_Meta_Match_Extension_State_addEntry___spec__6(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3; -lean_object* l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1___boxed(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_insertAux___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Meta_Match_Unify_occurs(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__4(lean_object*, lean_object*); +lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1(lean_object*, lean_object*, lean_object*); lean_object* l_List_append___rarg(lean_object*, lean_object*); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3; lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__2(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4(lean_object*); lean_object* l_Lean_Expr_constructorApp_x3f(lean_object*, lean_object*); -extern lean_object* l_Lean_MessageData_arrayExpr_toMessageData___main___closed__1; -uint8_t l___private_Lean_Meta_Match_Match_6__hasAsPattern(lean_object*); -lean_object* l_Lean_Meta_Match_Alt_Inhabited___closed__1; -lean_object* l_Lean_Meta_Match_Unify_unify___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toMessageData_match__1(lean_object*); +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(lean_object*); extern lean_object* l___private_Lean_Meta_Basic_1__regTraceClasses___closed__4; -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4; +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__7; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5; +lean_object* l_Lean_Meta_Match_Pattern_toExpr_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___boxed(lean_object*); lean_object* l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Example_toMessageData(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2(uint8_t, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4; +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_replaceFVarId___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__3___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3; lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1(lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* lean_expr_instantiate1(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__2(lean_object*); lean_object* l_Lean_SMap_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_push(lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l_Std_PersistentHashMap_getCollisionNodeSize___rarg(lean_object*); lean_object* l_List_find_x3f___main___rarg(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2; lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__8; -lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__1___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12(lean_object*); +lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(lean_object*, lean_object*); lean_object* lean_string_append(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__8(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_MessageData_ofList(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3___boxed(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__1(lean_object*); lean_object* l_Lean_Meta_isTypeCorrect(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__2; lean_object* l_Lean_Expr_getAppFn___main(lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar___boxed(lean_object*); +lean_object* l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_String_splitAux___main___closed__1; extern lean_object* l_Lean_Expr_getAppArgs___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_40__process(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_14__isValueTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar___boxed(lean_object*); +lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__1___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Extension_State_map___default; +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls(lean_object*, lean_object*); lean_object* l___private_Lean_Meta_InferType_4__getLevelImp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_mkHashSetImp___rarg(lean_object*); extern lean_object* l_List_repr___rarg___closed__3; extern lean_object* l_Lean_unitToExpr___lambda__1___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_applyFVarSubst___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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_Match_Problem_toMessageData___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__10(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_shiftRight(size_t, size_t); -lean_object* l___private_Lean_Meta_Match_Match_18__processLeaf___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher_match__1(lean_object*); lean_object* l_Lean_Meta_Match_Example_replaceFVarId___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_Inhabited; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3; +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone(lean_object*); lean_object* l_Lean_SMap_switch___at_Lean_Meta_Match_Extension_State_switch___spec__1(lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1(uint8_t, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6; -lean_object* l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1; lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_contains___at_Lean_Meta_CheckAssignment_check___main___spec__2(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14; lean_object* l_Lean_Meta_Match_mkMatcher(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_unify_match__2(lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__2(lean_object*); lean_object* l_Lean_SMap_insert___at_Lean_Meta_Match_Extension_State_addEntry___spec__1(lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_23__unify_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_setMCtx___at___private_Lean_Meta_Basic_6__liftMkBindingM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l___private_Lean_Meta_RecursorInfo_5__getMajorPosDepElim___closed__21; -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2(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_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___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* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_LocalContext_Inhabited___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern_match__1(lean_object*); uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__4; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_State_fvarSubst___default; extern lean_object* l_Lean_levelZero; -lean_object* l_Std_mkHashMap___at_Lean_Meta_Match_Extension_State_inhabited___spec__1(lean_object*); +lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_toMessageData_match__1(lean_object*); lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___at_Lean_Meta_Match_Extension_mkExtension___spec__4(lean_object*, lean_object*); extern lean_object* l_Lean_Meta_isLevelDefEqAux___main___lambda__1___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_5__isNextVar___boxed(lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6; +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern(lean_object*); +lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___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_Meta_Match_Match_0__Lean_Meta_Match_collectValues_match__1(lean_object*); extern lean_object* l___private_Lean_Environment_8__persistentEnvExtensionsRef; -lean_object* l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__3; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1(uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Closure_1__mkAuxDefinitionImp(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process_match__1___rarg(lean_object*, lean_object*); lean_object* l_Array_umapMAux___main___at_Lean_Meta_Closure_mkBinding___spec__1(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2___boxed(lean_object**); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_unify_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1(lean_object*, uint8_t, lean_object*); uint8_t l_List_elem___main___at_Lean_Occurrences_contains___spec__1(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___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_Meta_Match_Example_replaceFVarId___main___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_13__isConstructorTransition___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3; +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Match_Match___hyg_7756_(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8; lean_object* l_Lean_Meta_isLevelDefEq___rarg___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_getAppNumArgsAux___main(lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern(lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_Lean_AddMessageContext___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Example_replaceFVarId___main(lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7___boxed(lean_object*, lean_object*); -lean_object* l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___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_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__5___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Compiler_inlineAttrs; -uint8_t l___private_Lean_Meta_Match_Match_30__isFirstPatternVar(lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3; +lean_object* l_Lean_Meta_Match_Example_varsToUnderscore_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_ULift_HasRepr___rarg___closed__2; extern lean_object* l_Lean_Meta_isLevelDefEqAux___main___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3; +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__2(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension___lambda__1___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_10__hasVarPattern___boxed(lean_object*); lean_object* l_Lean_SMap_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__1(lean_object*, lean_object*); -lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Std_mkHashSet___at_Lean_Meta_Match_State_used___default___spec__1(lean_object*); +lean_object* l_Lean_Meta_mkFreshExprMVar___at_Lean_Meta_Match_mkMatcher___spec__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__2; lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_30__isFirstPatternVar___boxed(lean_object*); -lean_object* l_Lean_Meta_Match_Example_varsToUnderscore___main(lean_object*); +lean_object* l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(lean_object*, lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__3(lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts(lean_object*); lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2___boxed(lean_object*, lean_object*, lean_object*); lean_object* lean_array_fget(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3; -lean_object* l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_mkAuxDefinitionFor___spec__1(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_7__hasCtorPattern___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes_match__1(lean_object*); extern lean_object* l_Lean_Meta_isExprDefEq___rarg___closed__2; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Occurrences_beq(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1; extern lean_object* l_Lean_Expr_Inhabited___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_32__collectArraySizes___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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_eq(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toExpr___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__3(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern_match__1(lean_object*); lean_object* l_Array_anyRangeMAux___main___at_Lean_Meta_Match_Extension_mkExtension___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__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_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1; -lean_object* l_Lean_Meta_Match_Pattern_Inhabited___closed__1; -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__2(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__5; +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2; lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__9; lean_object* l_Lean_Expr_FindImpl_findM_x3f___main___at_Lean_Meta_Match_Unify_occurs___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2; lean_object* l_Lean_Meta_Match_Pattern_toMessageData(lean_object*); lean_object* l_Lean_Meta_Match_Example_varsToUnderscore(lean_object*); +lean_object* l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_unify_match__1(lean_object*); lean_object* lean_st_ref_take(lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_counterExamplesToMessageData___spec__1(lean_object*); -lean_object* l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__3(lean_object*); lean_object* l___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3; +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__2(lean_object*); +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_EStateM_bind___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(lean_object*, lean_object*); lean_object* lean_nat_sub(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Example_toMessageData___main___closed__3; +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1___boxed(lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_replaceFVarId___spec__3(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Expr_constLevels_x21(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_31__processValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1; +lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2(lean_object*); lean_object* l_Lean_Meta_Match_isCurrVarInductive___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Extension_State_map___default___closed__2; extern lean_object* l_Std_PersistentHashMap_insertAux___main___rarg___closed__3; -lean_object* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_16__isNatValueTransition(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__2(lean_object*); lean_object* l_Std_AssocList_contains___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__7___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__10; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__7(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_Match_mkMatcher___lambda__1___closed__6; lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_findAux___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__3___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_getArrayArgType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_4__isDone(lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1(uint8_t, lean_object*); -lean_object* l_Lean_Meta_Match_Example_toMessageData___main___closed__2; -uint8_t l___private_Lean_Meta_Match_Match_12__isVariableTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(lean_object*); +lean_object* l_Lean_Expr_toHeadIndex___main(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3; +lean_object* l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_mkEmptyEnvironment___closed__1; +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; lean_object* l_Lean_Meta_FVarSubst_apply(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1(lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__1(lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_introNCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__2(lean_object*); lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__3(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_State_addEntry(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__1; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(lean_object*, lean_object*); lean_object* l_Lean_Meta_assignExprMVar___at___private_Lean_Meta_InferType_4__getLevelImp___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3; +lean_object* l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__2(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_unify___closed__2; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1; +lean_object* l_Lean_Meta_Match_Example_replaceFVarId_match__1(lean_object*); lean_object* l_List_filterAux___main___at_Lean_Meta_Match_Alt_replaceFVarId___spec__1(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*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6; lean_object* l_Std_PersistentHashMap_insertAux___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Std_AssocList_contains___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__7(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition(lean_object*); extern lean_object* l_Lean_Meta_caseValue___closed__2; +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4; lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__2; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1(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_arrayHasFormat___rarg___closed__1; lean_object* l_Lean_Expr_fvarId_x21(lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1; -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType(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___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_mkHashMapImp___rarg(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf_match__1___rarg(lean_object*, lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern(lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_18__processLeaf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6(lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__1(lean_object*, lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1(uint8_t, lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2; lean_object* l_Lean_Meta_Match_Extension_extension___closed__2; lean_object* l_Lean_Name_appendIndexAfter(lean_object*, lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__1(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(lean_object*); lean_object* l_Lean_Meta_getInductiveUniverseAndParams(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1(lean_object*, lean_object*); -lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_SynthInstance_tryResolveCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__3(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_unify_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__2; lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__4(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__1(lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__4; +lean_object* l_Lean_Meta_MatcherApp_addArg_match__1(lean_object*); +lean_object* l_Lean_Meta_Match_Extension_State_map___default___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType_match__1(lean_object*); size_t l_Lean_Name_hash(lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___main(lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Nat_repr(lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1(lean_object*, uint8_t, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(lean_object*, lean_object*, lean_object*); +lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__8; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1(uint8_t, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_State_switch(lean_object*); lean_object* l_Lean_Meta_isLevelDefEq___rarg___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Extension_State_inhabited___closed__2; +lean_object* l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3; lean_object* lean_st_mk_ref(lean_object*, lean_object*); +lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4; lean_object* l_Std_HashMapImp_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__5(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; lean_object* l_Lean_Meta_Match_Extension_extension; +lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Unify_assign(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_insert___at_Lean_Meta_Match_Extension_State_addEntry___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Extension_State_inhabited___closed__1; -lean_object* l_Lean_Meta_Match_Alt_Inhabited; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_occurs_match__1(lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___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_name_mk_string(lean_object*, lean_object*); extern lean_object* l_List_repr___rarg___closed__2; lean_object* l_Lean_Meta_Match_Pattern_replaceFVarId(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isMatcher(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_43__regTraceClasses(lean_object*); +lean_object* l_Lean_Meta_Match_State_counterExamples___default; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1; +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_List_reprAux___main___rarg___closed__1; -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Std_mkHashMap___at_Lean_Meta_Match_Extension_State_map___default___spec__1(lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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* l_Lean_addMessageContextFull___at_Lean_Meta_Lean_AddMessageContext___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3; +lean_object* l_Lean_Meta_Match_Pattern_toMessageData_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(lean_object*, lean_object*); extern size_t l_Std_PersistentHashMap_insertAux___main___rarg___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_3__withAlts(lean_object*); -lean_object* l_Lean_getConstInfo___at_Lean_Meta_getParamNamesImp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8; -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1(uint8_t, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_12__isVariableTransition___boxed(lean_object*); -lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_29__collectValues(lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6; +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Meta_Basic_29__withExistingLocalDeclsImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3; lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_8__hasValPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern_match__1(lean_object*); +lean_object* l_Lean_Meta_mkFreshExprMVar___at_Lean_Meta_Match_mkMatcher___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_throwUnknownConstant___rarg___closed__5; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2; +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar(lean_object*); +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_CoreM_1__mkFreshNameImp(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__2___rarg(lean_object*, lean_object*, lean_object*); extern lean_object* l_IO_Error_Inhabited___closed__1; -lean_object* l_Lean_Meta_Match_Problem_Inhabited; +lean_object* l_Lean_Meta_Match_Example_toMessageData_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_toMessageData___closed__2; -lean_object* l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_addMatcherInfo(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_3__withAlts___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1; -lean_object* l_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__3(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Closure_1__mkAuxDefinitionImp___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_Match_Extension_mkExtension___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(lean_object*); +lean_object* l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__3___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_toMessageData___closed__4; extern lean_object* l_Lean_Literal_type___closed__2; -lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__2(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__9(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*); extern lean_object* l_List_map___main___at_Lean_Meta_DiscrTree_Trie_format___main___spec__2___rarg___closed__2; -lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__1(lean_object*, lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___boxed(lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__3; -lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1; +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__8; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___closed__4; uint8_t l_Array_isEmpty___rarg(lean_object*); lean_object* l_Lean_Meta_Match_Alt_toMessageData___closed__1; -lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__3(lean_object*); -lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_toExpr(lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3; lean_object* l_Lean_Meta_Match_Unify_unify___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_AssocList_find_x3f___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__6___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5; -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2; +lean_object* l_Lean_Meta_Match_Unify_unify___closed__1; +lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_addMatcherInfo(lean_object*, lean_object*, lean_object*); -lean_object* l_Std_mkHashSet___at_Lean_Meta_Match_mkMatcher___spec__2(lean_object*); +extern lean_object* l_Lean_throwUnknownConstant___rarg___closed__3; size_t l_USize_mul(size_t, size_t); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3; lean_object* l_Array_iterateMAux___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_42__updateAlts___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_redLength___main___rarg(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1; -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__2(lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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* l_Lean_mkStateFromImportedEntries___at_Lean_Meta_Match_Extension_mkExtension___spec__1(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(lean_object*, lean_object*); lean_object* l_Lean_Meta_isLevelDefEqAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__5; +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Unify_assign___closed__1; -lean_object* l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__2(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Example_toMessageData___main___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___closed__4; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2; -lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___main(lean_object*, lean_object*); -lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_MessageData_hasCoeOfArrayExpr___closed__2; +lean_object* l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_formatEntry___closed__1; lean_object* l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1___boxed(lean_object*, lean_object*); extern lean_object* l___private_Lean_Meta_Basic_1__regTraceClasses___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1; -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_38__traceState(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__9___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkFVar(lean_object*); -lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12; -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__1(lean_object*); -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3; +lean_object* l_Lean_Meta_Match_Unify_expandIfVar_match__1(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_usize_of_nat(lean_object*); -lean_object* l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__4(lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2; lean_object* l_Lean_replaceFVarIdAtLocalDecl(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkSimpleThunkType(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___closed__2; -lean_object* l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar_match__1(lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__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_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__2(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__4; lean_object* l_Lean_MessageData_joinSep___main(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_counterExampleToMessageData(lean_object*); +lean_object* l___private_Lean_Meta_Basic_21__forallBoundedTelescopeImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_mkLevelMVar(lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3; lean_object* l_Lean_Expr_replaceFVarId(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__3___boxed(lean_object**); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension___lambda__1(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1; extern lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___lambda__1___closed__1; lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1(uint8_t, lean_object*); size_t l_USize_land(size_t, size_t); +lean_object* l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3___boxed(lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_fvarId(lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern(lean_object*); extern lean_object* l_Lean_EnvExtensionInterfaceUnsafe_Ext_inhabitedExt___closed__2; +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1; +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__1; +lean_object* l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1; lean_object* l_Lean_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___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_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__3(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__4___rarg(lean_object*); lean_object* l_Std_HashMapImp_moveEntries___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__9(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5; -lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3; +extern lean_object* l_Std_HashSet_Inhabited___closed__1; +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId_match__1(lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf_match__1(lean_object*); lean_object* l_Lean_Meta_Match_isCurrVarInductive___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(uint8_t, lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; lean_object* l_Std_HashMapImp_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__5___boxed(lean_object*, lean_object*); size_t l_USize_mod(size_t, size_t); lean_object* l_Lean_Meta_Match_Extension_mkExtension___closed__2; lean_object* l_Lean_Meta_Match_Unify_assign___closed__2; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___closed__1; lean_object* l_Lean_LocalDecl_type(lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_toMessageData___closed__4; lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__4(lean_object*, lean_object*); lean_object* l_Lean_Meta_FVarSubst_get(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___closed__2; +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_addMatcherInfo___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__2___boxed(lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__2(lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__1___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(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_FindImpl_initCache; lean_object* l_Std_PersistentHashMap_findAux___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__3(lean_object*, size_t, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__2(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__12; lean_object* l_List_map___main___at_Lean_Meta_Match_examplesToMessageData___spec__1(lean_object*); lean_object* l_Lean_Meta_getMatcherInfo_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t lean_ptr_addr(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__2(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1(lean_object*); lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__1; lean_object* l___private_Lean_Meta_LevelDefEq_15__runDefEqM(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4; +lean_object* l_Lean_Meta_Match_Pattern_toMessageData___closed__2; lean_object* l_Lean_Meta_Match_Unify_assign___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentArray_push___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Unify_unify___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_matchMatcherApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_AssocList_foldlM___main___at_Lean_Meta_Match_Extension_State_addEntry___spec__10(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__6; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1; +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___spec__2(lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1(uint8_t, lean_object*); lean_object* l_Std_PersistentHashMap_find_x3f___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__2___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_23__unify_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNamesImp___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__2(lean_object*, lean_object*); lean_object* l_Lean_setEnv___at_Lean_Meta_setInlineAttribute___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1; +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___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* l_Lean_registerSimplePersistentEnvExtension___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension___closed__5; -lean_object* l___private_Lean_Meta_Match_Match_9__hasNatValPattern___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___lambda__1(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f(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_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_KAbstract_1__kabstractAux___main(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_Match_Alt_toMessageData(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(lean_object*, lean_object*); -lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__7; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__3___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__9(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__4; -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__3(lean_object*, lean_object*); uint8_t lean_nat_dec_le(lean_object*, lean_object*); uint8_t l_USize_decLe(size_t, size_t); +lean_object* l_Lean_Meta_MatcherApp_addArg_match__2___rarg(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkApp(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_15__isArrayLitTransition___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__1(lean_object*); lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5; +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_hasMVar(lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension___closed__3; lean_object* l_Lean_Meta_Match_Extension_extension___elambda__1___boxed(lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__4; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___boxed(lean_object*); lean_object* l_Lean_Meta_matchMatcherApp_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1; +lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addTrace___at_Lean_Meta_isLevelDefEq___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__2___rarg(lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__1(lean_object*, lean_object*); lean_object* l_Lean_Meta_FVarSubst_insert(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_isCurrVarInductive(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1; -uint8_t l___private_Lean_Meta_Match_Match_5__isNextVar(lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__2(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_22__inLocalDecls___boxed(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected(lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__9; extern lean_object* l_Lean_registerSimplePersistentEnvExtension___rarg___closed__1; lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_replaceFVarId___spec__2(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_expandIfVar_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6(lean_object*); +lean_object* lean_panic_fn(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_assignGoalOf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_admit(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_replaceFVarId(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__1(lean_object*); lean_object* l_Lean_Meta_isExprDefEqGuarded___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2; extern lean_object* l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___boxed(lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__1(lean_object*); +lean_object* l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_MatcherApp_toExpr(lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1(uint8_t, uint8_t, lean_object*); +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_isCurrVarInductive_match__1(lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__3___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2; +lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible(lean_object*); +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension(lean_object*); extern lean_object* l_Lean_Meta_evalNat___main___closed__17; -lean_object* l___private_Lean_Meta_Match_Match_26__hasRecursiveType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__4; lean_object* l_Std_HashMapImp_expand___at_Lean_Meta_Match_Extension_State_addEntry___spec__8(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__4___boxed(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_getMatcherInfo_x3f___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Problem_Inhabited___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__1(lean_object*); lean_object* l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Array_contains___at___private_Lean_Meta_FunInfo_3__collectDepsAux___main___spec__2(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2; +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2; lean_object* lean_nat_mul(lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2; -uint8_t l___private_Lean_Meta_Match_Match_15__isArrayLitTransition(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_varsToUnderscore_match__1(lean_object*); +extern lean_object* l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1(lean_object*); +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition(lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1___boxed(lean_object*, lean_object*); lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_42__updateAlts___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___boxed(lean_object*); lean_object* l_Lean_Meta_caseValues(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_object* l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Example_replaceFVarId(lean_object*, lean_object*, lean_object*); -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(lean_object*, uint8_t, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1; lean_object* l_Lean_mkForall(lean_object*, uint8_t, lean_object*, lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___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*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__5; lean_object* l_Lean_Meta_Match_withGoalOf(lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2; -lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6; -lean_object* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___closed__1; -uint8_t l___private_Lean_Meta_Match_Match_9__hasNatValPattern(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition_match__1(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2(uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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_Meta_Match_Pattern_toMessageData___closed__6; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__2(lean_object*); +lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1(lean_object*, lean_object*); +lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1; lean_object* l_Lean_Meta_Match_withGoalOf___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__1; -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_ExprDefEq_43__isDefEqQuick___main___lambda__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1; +lean_object* l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_mkExtension___closed__4; -extern lean_object* l_Lean_KernelException_toMessageData___closed__12; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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_Array_toList___rarg(lean_object*); lean_object* l_Lean_Meta_Match_Unify_unify(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Expr_Inhabited; lean_object* l_Lean_Meta_Match_Unify_expandIfVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___main___boxed(lean_object*, lean_object*); lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_isLevelDefEq___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Position_lt___closed__1; +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_mk_array(lean_object*, lean_object*); -lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___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___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f_match__1___rarg(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Unify_occurs___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Example_toMessageData___main(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_40__process___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1; +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* lean_expr_abstract(lean_object*, lean_object*); +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition_match__1(lean_object*); extern lean_object* l_Lean_MessageData_arrayExpr_toMessageData___main___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___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___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3; -uint8_t l___private_Lean_Meta_Match_Match_22__inLocalDecls(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5; extern lean_object* l_Lean_registerPersistentEnvExtensionUnsafe___rarg___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux(lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3; -lean_object* l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9___boxed(lean_object*, lean_object*); -extern lean_object* l___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_throwInductiveTypeExpected___rarg___closed__1; +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__8(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_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__2; +lean_object* l_Lean_Meta_Match_mkMatcher_match__1___rarg(lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_indentD(lean_object*); -lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5; -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2; -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1(uint8_t, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3; +lean_object* l_Lean_Meta_Match_State_used___default___closed__1; lean_object* l_Lean_EnumAttributes_setValue___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_examplesToMessageData(lean_object*); lean_object* l_Lean_Meta_instantiateMVars___at_Lean_Meta_instantiateLocalDeclMVars___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9; -lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3(lean_object*); +lean_object* l_Lean_Meta_Match_State_used___default; +lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8; extern lean_object* l_Lean_Meta_evalNat___main___closed__1; +lean_object* l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_mapM___main___at_Lean_Meta_Match_Problem_toMessageData___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___boxed(lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_6__hasAsPattern___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___boxed(lean_object*, lean_object*); extern lean_object* l_Lean_mkOptionalNode___closed__2; -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___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* l_List_mapM___main___at_Lean_Meta_Match_Problem_toMessageData___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Format_paren___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1; lean_object* l_Lean_Meta_Match_Extension_State_inhabited; -lean_object* l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Std_AssocList_contains___main___at_Lean_Meta_FVarSubst_contains___spec__1(lean_object*, lean_object*); +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1(uint8_t, lean_object*); lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_FunInfo_6__getFunInfoAux___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkNatLit(lean_object*); -uint8_t l___private_Lean_Meta_Match_Match_10__hasVarPattern(lean_object*); -lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__7(lean_object*, lean_object*); +lean_object* l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_filterAux___main___at_Lean_Meta_Match_Alt_replaceFVarId___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar_match__1(lean_object*); +uint8_t l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5(lean_object*, lean_object*); +extern lean_object* l___private_Lean_Meta_RecursorInfo_5__getMajorPosDepElim___closed__19; +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_MatcherInfo_numAlts(lean_object*); -lean_object* l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_17__processSkipInaccessible(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_toArrayAux___main___rarg(lean_object*, lean_object*); +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___boxed(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__4(lean_object*, lean_object*); extern lean_object* l_Nat_Inhabited; -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3; -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__1___rarg(lean_object*, lean_object*, lean_object*); extern lean_object* l_System_FilePath_dirName___closed__1; +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(lean_object*, uint8_t, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___boxed(lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_unsafeCast(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__1; lean_object* l_Lean_Meta_getMatcherInfo_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_List_isEmpty___rarg(lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__7; lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__1; +lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16; lean_object* l_Lean_Meta_Match_Extension_extension___closed__3; lean_object* l_Lean_Name_toStringWithSep___main(lean_object*, lean_object*); -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(lean_object*); +lean_object* l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___spec__4(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Meta_throwTacticEx___rarg___closed__6; +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__2(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__1___rarg(lean_object*, lean_object*); lean_object* l___private_Lean_Util_Trace_5__getResetTraces___at_Lean_Meta_isLevelDefEq___spec__4___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Meta_kabstract___at_Lean_Meta_GeneralizeTelescope_updateTypes___main___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1___boxed(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5; lean_object* lean_usize_to_nat(size_t); +lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4; extern lean_object* l_Lean_regNamespacesExtension___closed__4; -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1; -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__3(lean_object*); +lean_object* l_Lean_Meta_Match_Unify_assign___closed__6; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_isCurrVarInductive_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_level_eq(lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_isCurrVarInductive___closed__1; -lean_object* l_Lean_Meta_Match_mkMatcher___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_object* l_EStateM_pure___rarg(lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_findAtAux___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1; lean_object* l_beqOfEq___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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_Meta_Match_Problem_toMessageData___lambda__1___closed__6; lean_object* l_Lean_Meta_Match_Extension_getMatcherInfo_x3f(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1; +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___boxed(lean_object*); lean_object* l_Lean_indentExpr(lean_object*); -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2; -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2; +lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_mkFreshId___at_Lean_Meta_mkFreshExprMVarAt___spec__1___rarg(lean_object*, lean_object*); +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__2; lean_object* l_Lean_Meta_Match_Extension_extension___elambda__2___boxed(lean_object*); -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern_match__1(lean_object*); +lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(uint8_t, lean_object*); +lean_object* l_Lean_Meta_Match_Example_toMessageData___closed__3; +lean_object* l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Level_format(lean_object*); -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4___boxed(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkConst(lean_object*, lean_object*); extern lean_object* l_Lean_MessageData_Inhabited___closed__1; -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5___boxed(lean_object*, lean_object*); -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7; +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1; lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__2; lean_object* l_Lean_Meta_Match_counterExamplesToMessageData(lean_object*); lean_object* l_Lean_Expr_FindImpl_findM_x3f___main___at_Lean_Meta_Match_Unify_occurs___spec__1(lean_object*, size_t, lean_object*, lean_object*); -lean_object* l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_caseArraySizes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_4__isDone___boxed(lean_object*); -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_toMessageData___closed__1; +lean_object* l_Lean_Meta_MatcherApp_addArg___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1(lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__5; lean_object* l_Lean_Meta_Match_Alt_applyFVarSubst(lean_object*, lean_object*); -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__1(lean_object*); lean_object* l_Std_PersistentHashMap_findAtAux___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___closed__5; +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1___boxed(lean_object*, lean_object*); +extern lean_object* l___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_throwInductiveTypeExpected___rarg___closed__2; lean_object* l___private_Lean_Meta_Basic_38__instantiateLambdaAux___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__3; +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__4___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Extension_extension___elambda__2(lean_object*); lean_object* l_Lean_Meta_Match_Unify_isAltVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_WHNF_12__whnfEasyCases___main___at___private_Lean_Meta_WHNF_17__whnfCoreImp___main___spec__2___lambda__1___boxed(lean_object*, lean_object*); -lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern_match__1(lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2; lean_object* l_Lean_Meta_Match_Unify_expandIfVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2; lean_object* l___private_Lean_Meta_Basic_23__lambdaTelescopeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(lean_object*, lean_object*); extern lean_object* l_Lean_Meta_isLevelDefEq___rarg___closed__2; -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1; -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__2___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7___boxed(lean_object*, lean_object*); +lean_object* l___private_Init_Util_2__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkStateFromImportedEntries___at_Lean_Meta_Match_Extension_mkExtension___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalDecl_applyFVarSubst(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1; -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1; -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1___boxed(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__1(lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__2(lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2___boxed(lean_object*, lean_object*); +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1___boxed(lean_object*, lean_object*); +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition_match__1(lean_object*); lean_object* l_Lean_Meta_check(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Alt_toMessageData___closed__3; -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1(lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_mkMatcher___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_object*); lean_object* l_Lean_Meta_Match_Pattern_toExpr(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_mkCollisionNode___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_Match_Example_replaceFVarId_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; lean_object* l_Std_AssocList_find_x3f___main___at_Lean_Meta_Match_Extension_getMatcherInfo_x3f___spec__6(lean_object*, lean_object*); -lean_object* l___private_Lean_Meta_Match_Match_14__isValueTransition___boxed(lean_object*); lean_object* l_Lean_Meta_cases___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_mkFreshLevelMVar___at___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1; extern lean_object* l_Lean_Meta_mkArrow___rarg___closed__2; +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__2; -static lean_object* _init_l_Lean_Meta_Match_Pattern_Inhabited___closed__1() { +lean_object* l_Lean_Meta_Match_Example_toMessageData___closed__2; +static lean_object* _init_l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -854,15 +1017,148 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_Inhabited() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1() { _start: { lean_object* x_1; -x_1 = l_Lean_Meta_Match_Pattern_Inhabited___closed__1; +x_1 = l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1; return x_1; } } -lean_object* l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_Match_Pattern_toMessageData_match__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: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_9; lean_object* 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); +x_9 = lean_ctor_get(x_1, 0); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_1(x_2, x_9); +return x_10; +} +case 1: +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_1(x_3, x_11); +return x_12; +} +case 2: +{ +lean_object* x_13; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_ctor_get(x_1, 3); +lean_inc(x_13); +if (lean_obj_tag(x_13) == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_5); +x_14 = lean_ctor_get(x_1, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 1); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 2); +lean_inc(x_16); +lean_dec(x_1); +x_17 = lean_apply_3(x_4, x_14, x_15, x_16); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_4); +x_18 = lean_ctor_get(x_1, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 1); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 2); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_4(x_5, x_18, x_19, x_20, x_13); +return x_21; +} +} +case 3: +{ +lean_object* x_22; lean_object* x_23; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +lean_dec(x_1); +x_23 = lean_apply_1(x_6, x_22); +return x_23; +} +case 4: +{ +lean_object* x_24; lean_object* x_25; lean_object* x_26; +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_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_26 = lean_apply_2(x_7, x_24, x_25); +return x_26; +} +default: +{ +lean_object* x_27; lean_object* x_28; 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); +x_27 = lean_ctor_get(x_1, 0); +lean_inc(x_27); +x_28 = lean_ctor_get(x_1, 1); +lean_inc(x_28); +lean_dec(x_1); +x_29 = lean_apply_2(x_8, x_27, x_28); +return x_29; +} +} +} +} +lean_object* l_Lean_Meta_Match_Pattern_toMessageData_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Pattern_toMessageData_match__1___rarg), 8, 0); +return x_2; +} +} +lean_object* l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -881,7 +1177,7 @@ x_5 = l___private_Lean_Meta_ExprDefEq_12__addAssignmentInfo___closed__4; x_6 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_6, 0, x_1); lean_ctor_set(x_6, 1, x_5); -x_7 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_3); +x_7 = l_Lean_Meta_Match_Pattern_toMessageData(x_3); x_8 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_8, 0, x_6); lean_ctor_set(x_8, 1, x_7); @@ -891,7 +1187,7 @@ goto _start; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__2(lean_object* x_1) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -909,8 +1205,8 @@ if (x_3 == 0) lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); -x_6 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_4); -x_7 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__2(x_5); +x_6 = l_Lean_Meta_Match_Pattern_toMessageData(x_4); +x_7 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(x_5); lean_ctor_set(x_1, 1, x_7); lean_ctor_set(x_1, 0, x_6); return x_1; @@ -923,8 +1219,8 @@ x_9 = lean_ctor_get(x_1, 1); lean_inc(x_9); lean_inc(x_8); lean_dec(x_1); -x_10 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_8); -x_11 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__2(x_9); +x_10 = l_Lean_Meta_Match_Pattern_toMessageData(x_8); +x_11 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(x_9); x_12 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_12, 0, x_10); lean_ctor_set(x_12, 1, x_11); @@ -933,7 +1229,7 @@ return x_12; } } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__1() { _start: { lean_object* x_1; @@ -941,47 +1237,52 @@ x_1 = lean_mk_string(".("); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_Match_Pattern_toMessageData___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_ULift_HasRepr___rarg___closed__2; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Format_paren___closed__4; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Prod_HasRepr___rarg___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__5() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Format_paren___closed__3; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_addParenHeuristic___closed__2; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_repr___rarg___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__7() { _start: { lean_object* x_1; @@ -989,27 +1290,16 @@ x_1 = lean_mk_string("@"); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7() { +static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__8() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_Match_Pattern_toMessageData___closed__7; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_Pattern_toMessageData___main(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Pattern_toMessageData(lean_object* x_1) { _start: { switch (lean_obj_tag(x_1)) { @@ -1021,11 +1311,11 @@ lean_inc(x_2); lean_dec(x_1); x_3 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_3, 0, x_2); -x_4 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3; +x_4 = l_Lean_Meta_Match_Pattern_toMessageData___closed__2; x_5 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_5, 0, x_4); lean_ctor_set(x_5, 1, x_3); -x_6 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_6 = l_Lean_Meta_Match_Pattern_toMessageData___closed__3; x_7 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_7, 0, x_5); lean_ctor_set(x_7, 1, x_6); @@ -1059,91 +1349,203 @@ 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_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; x_14 = lean_ctor_get(x_1, 0); lean_inc(x_14); lean_dec(x_1); x_15 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_15, 0, x_14); -x_16 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5; +x_16 = l_Lean_Meta_Match_Pattern_toMessageData___closed__4; x_17 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_17, 0, x_16); lean_ctor_set(x_17, 1, x_15); -x_18 = l_Lean_MessageData_Inhabited___closed__1; -x_19 = l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__1(x_18, x_11); -x_20 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_20, 0, x_17); -lean_ctor_set(x_20, 1, x_19); -x_21 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_18 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_19 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_18); +x_20 = l_Lean_MessageData_Inhabited___closed__1; +x_21 = l_List_foldl___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__1(x_20, x_11); x_22 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 0, x_19); lean_ctor_set(x_22, 1, x_21); -return x_22; +x_23 = l_Lean_Meta_Match_Pattern_toMessageData___closed__3; +x_24 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_24, 0, x_22); +lean_ctor_set(x_24, 1, x_23); +return x_24; } } case 3: { -lean_object* x_23; lean_object* x_24; -x_23 = lean_ctor_get(x_1, 0); -lean_inc(x_23); +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_1, 0); +lean_inc(x_25); lean_dec(x_1); -x_24 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_24, 0, x_23); -return x_24; +x_26 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_26, 0, x_25); +return x_26; } case 4: { -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_1, 1); -lean_inc(x_25); +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_1, 1); +lean_inc(x_27); lean_dec(x_1); -x_26 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___main___spec__2(x_25); -x_27 = l_Lean_MessageData_arrayExpr_toMessageData___main___closed__2; -x_28 = l_Lean_MessageData_joinSep___main(x_26, x_27); -lean_dec(x_26); -x_29 = l_Lean_MessageData_hasCoeOfArrayExpr___closed__2; -x_30 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_30, 0, x_29); -lean_ctor_set(x_30, 1, x_28); -x_31 = l_Lean_MessageData_arrayExpr_toMessageData___main___closed__1; +x_28 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(x_27); +x_29 = l_Lean_MessageData_arrayExpr_toMessageData___main___closed__2; +x_30 = l_Lean_MessageData_joinSep___main(x_28, x_29); +lean_dec(x_28); +x_31 = l_Lean_Meta_Match_Pattern_toMessageData___closed__5; x_32 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_32, 0, x_30); -lean_ctor_set(x_32, 1, x_31); -return x_32; +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_30); +x_33 = l_Lean_Meta_Match_Pattern_toMessageData___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); +return x_34; } default: { -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_33 = lean_ctor_get(x_1, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_1, 1); -lean_inc(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; +x_35 = lean_ctor_get(x_1, 0); +lean_inc(x_35); +x_36 = lean_ctor_get(x_1, 1); +lean_inc(x_36); lean_dec(x_1); -x_35 = l_Lean_mkFVar(x_33); -x_36 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_36, 0, x_35); -x_37 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8; -x_38 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_38, 0, x_36); -lean_ctor_set(x_38, 1, x_37); -x_39 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_34); +x_37 = l_Lean_mkFVar(x_35); +x_38 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_38, 0, x_37); +x_39 = l_Lean_Meta_throwTacticEx___rarg___closed__6; x_40 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_40, 0, x_38); -lean_ctor_set(x_40, 1, x_39); -return x_40; +lean_ctor_set(x_40, 0, x_39); +lean_ctor_set(x_40, 1, x_38); +x_41 = l_Lean_Meta_Match_Pattern_toMessageData___closed__8; +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 = l_Lean_Meta_Match_Pattern_toMessageData(x_36); +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_alloc_ctor(10, 2, 0); +lean_ctor_set(x_45, 0, x_44); +lean_ctor_set(x_45, 1, x_39); +return x_45; } } } } -lean_object* l_Lean_Meta_Match_Pattern_toMessageData(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Pattern_toExpr_match__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) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_apply_1(x_2, x_8); +return x_9; +} +case 1: +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_apply_1(x_3, x_10); +return x_11; +} +case 2: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 3); +lean_inc(x_15); +lean_dec(x_1); +x_16 = lean_apply_4(x_7, x_12, x_13, x_14, x_15); +return x_16; +} +case 3: +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_1(x_4, x_17); +return x_18; +} +case 4: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_6, x_19, x_20); +return x_21; +} +default: +{ +lean_object* x_22; lean_object* x_23; lean_object* x_24; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +lean_dec(x_1); +x_24 = lean_apply_2(x_5, x_22, x_23); +return x_24; +} +} +} +} +lean_object* l_Lean_Meta_Match_Pattern_toExpr_match__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_1); +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Pattern_toExpr_match__1___rarg), 7, 0); return x_2; } } -lean_object* l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___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* l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___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: { if (lean_obj_tag(x_1) == 0) @@ -1172,7 +1574,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_12 = l_Lean_Meta_Match_Pattern_toExpr___main(x_10, x_2, x_3, x_4, x_5, x_6); +x_12 = l_Lean_Meta_Match_Pattern_toExpr(x_10, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_12) == 0) { lean_object* x_13; lean_object* x_14; lean_object* x_15; @@ -1181,7 +1583,7 @@ lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -x_15 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___spec__1(x_11, x_2, x_3, x_4, x_5, x_14); +x_15 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___spec__1(x_11, x_2, x_3, x_4, x_5, x_14); if (lean_obj_tag(x_15) == 0) { uint8_t x_16; @@ -1277,7 +1679,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_31 = l_Lean_Meta_Match_Pattern_toExpr___main(x_29, x_2, x_3, x_4, x_5, x_6); +x_31 = l_Lean_Meta_Match_Pattern_toExpr(x_29, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_31) == 0) { lean_object* x_32; lean_object* x_33; lean_object* x_34; @@ -1286,7 +1688,7 @@ lean_inc(x_32); x_33 = lean_ctor_get(x_31, 1); lean_inc(x_33); lean_dec(x_31); -x_34 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___spec__1(x_30, x_2, x_3, x_4, x_5, x_33); +x_34 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___spec__1(x_30, x_2, x_3, x_4, x_5, x_33); if (lean_obj_tag(x_34) == 0) { lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; @@ -1373,7 +1775,7 @@ return x_47; } } } -lean_object* l_Lean_Meta_Match_Pattern_toExpr___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_Meta_Match_Pattern_toExpr(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: { switch (lean_obj_tag(x_1)) { @@ -1405,7 +1807,7 @@ lean_inc(x_12); x_13 = lean_ctor_get(x_1, 3); lean_inc(x_13); lean_dec(x_1); -x_14 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___spec__1(x_13, x_2, x_3, x_4, x_5, x_6); +x_14 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___spec__1(x_13, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_14) == 0) { uint8_t x_15; @@ -1487,7 +1889,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_40 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___main___spec__1(x_39, x_2, x_3, x_4, x_5, x_6); +x_40 = l_List_mapM___main___at_Lean_Meta_Match_Pattern_toExpr___spec__1(x_39, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_40) == 0) { lean_object* x_41; lean_object* x_42; lean_object* x_43; @@ -1496,7 +1898,7 @@ lean_inc(x_41); x_42 = lean_ctor_get(x_40, 1); lean_inc(x_42); lean_dec(x_40); -x_43 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___spec__1(x_38, x_41, x_2, x_3, x_4, x_5, x_42); +x_43 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___spec__1(x_38, x_41, x_2, x_3, x_4, x_5, x_42); return x_43; } else @@ -1554,15 +1956,178 @@ return x_51; } } } -lean_object* l_Lean_Meta_Match_Pattern_toExpr(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_7; -x_7 = l_Lean_Meta_Match_Pattern_toExpr___main(x_1, x_2, x_3, x_4, x_5, x_6); +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); return x_7; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(lean_object* x_1, lean_object* x_2) { +} +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Pattern_applyFVarSubst_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Pattern_applyFVarSubst_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__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) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_apply_1(x_2, x_8); +return x_9; +} +case 1: +{ +lean_object* x_10; lean_object* x_11; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_apply_1(x_6, x_10); +return x_11; +} +case 2: +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_12 = lean_ctor_get(x_1, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 3); +lean_inc(x_15); +lean_dec(x_1); +x_16 = lean_apply_4(x_3, x_12, x_13, x_14, x_15); +return x_16; +} +case 3: +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_1(x_4, x_17); +return x_18; +} +case 4: +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +x_20 = lean_ctor_get(x_1, 1); +lean_inc(x_20); +lean_dec(x_1); +x_21 = lean_apply_2(x_5, x_19, x_20); +return x_21; +} +default: +{ +lean_object* x_22; 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_2); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 1); +lean_inc(x_23); +lean_dec(x_1); +x_24 = lean_apply_2(x_7, x_22, x_23); +return x_24; +} +} +} +} +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Pattern_applyFVarSubst_match__3___rarg), 7, 0); +return x_2; +} +} +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -1581,7 +2146,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_FVarSubst_apply(x_1, x_5); -x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(x_1, x_6); +x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -1595,7 +2160,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_FVarSubst_apply(x_1, x_9); -x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(x_1, x_10); +x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -1604,7 +2169,7 @@ return x_13; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -1622,8 +2187,8 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_5); -x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(x_1, x_6); +x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_5); +x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -1636,8 +2201,8 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_9); -x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(x_1, x_10); +x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_9); +x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -1646,7 +2211,7 @@ return x_13; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -1664,8 +2229,8 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_5); -x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(x_1, x_6); +x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_5); +x_8 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -1678,8 +2243,8 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_9); -x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(x_1, x_10); +x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_9); +x_12 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -1688,7 +2253,7 @@ return x_13; } } } -lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___main(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_2)) { @@ -1718,185 +2283,197 @@ return x_8; } case 1: { -lean_object* x_9; lean_object* x_10; -x_9 = lean_ctor_get(x_2, 0); -lean_inc(x_9); -x_10 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_9, x_1); -lean_dec(x_9); -if (lean_obj_tag(x_10) == 0) +uint8_t x_9; +x_9 = !lean_is_exclusive(x_2); +if (x_9 == 0) +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_ctor_get(x_2, 0); +x_11 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_10, x_1); +if (lean_obj_tag(x_11) == 0) { return x_2; } else { -uint8_t x_11; -x_11 = !lean_is_exclusive(x_2); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_2, 0); -lean_dec(x_12); -x_13 = lean_ctor_get(x_10, 0); -lean_inc(x_13); +lean_object* x_12; lean_dec(x_10); +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +lean_dec(x_11); lean_ctor_set_tag(x_2, 0); -lean_ctor_set(x_2, 0, x_13); +lean_ctor_set(x_2, 0, x_12); return x_2; } +} else { -lean_object* x_14; lean_object* x_15; +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_2, 0); +lean_inc(x_13); lean_dec(x_2); -x_14 = lean_ctor_get(x_10, 0); -lean_inc(x_14); -lean_dec(x_10); -x_15 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_15, 0, x_14); +x_14 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_13, x_1); +if (lean_obj_tag(x_14) == 0) +{ +lean_object* x_15; +x_15 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_15, 0, x_13); return x_15; } +else +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_13); +x_16 = lean_ctor_get(x_14, 0); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_17, 0, x_16); +return x_17; +} } } case 2: { -uint8_t x_16; -x_16 = !lean_is_exclusive(x_2); -if (x_16 == 0) +uint8_t x_18; +x_18 = !lean_is_exclusive(x_2); +if (x_18 == 0) { -lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; -x_17 = lean_ctor_get(x_2, 2); -x_18 = lean_ctor_get(x_2, 3); -x_19 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(x_1, x_17); -x_20 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(x_1, x_18); -lean_ctor_set(x_2, 3, x_20); -lean_ctor_set(x_2, 2, x_19); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_19 = lean_ctor_get(x_2, 2); +x_20 = lean_ctor_get(x_2, 3); +x_21 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(x_1, x_19); +x_22 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(x_1, x_20); +lean_ctor_set(x_2, 3, x_22); +lean_ctor_set(x_2, 2, x_21); return x_2; } 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; -x_21 = lean_ctor_get(x_2, 0); -x_22 = lean_ctor_get(x_2, 1); -x_23 = lean_ctor_get(x_2, 2); -x_24 = lean_ctor_get(x_2, 3); +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_23 = lean_ctor_get(x_2, 0); +x_24 = lean_ctor_get(x_2, 1); +x_25 = lean_ctor_get(x_2, 2); +x_26 = lean_ctor_get(x_2, 3); +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_2); -x_25 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(x_1, x_23); -x_26 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(x_1, x_24); -x_27 = lean_alloc_ctor(2, 4, 0); -lean_ctor_set(x_27, 0, x_21); -lean_ctor_set(x_27, 1, x_22); -lean_ctor_set(x_27, 2, x_25); -lean_ctor_set(x_27, 3, x_26); -return x_27; +x_27 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(x_1, x_25); +x_28 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(x_1, x_26); +x_29 = lean_alloc_ctor(2, 4, 0); +lean_ctor_set(x_29, 0, x_23); +lean_ctor_set(x_29, 1, x_24); +lean_ctor_set(x_29, 2, x_27); +lean_ctor_set(x_29, 3, x_28); +return x_29; } } case 3: { -uint8_t x_28; -x_28 = !lean_is_exclusive(x_2); -if (x_28 == 0) +uint8_t x_30; +x_30 = !lean_is_exclusive(x_2); +if (x_30 == 0) { -lean_object* x_29; lean_object* x_30; -x_29 = lean_ctor_get(x_2, 0); -x_30 = l_Lean_Meta_FVarSubst_apply(x_1, x_29); -lean_ctor_set(x_2, 0, x_30); +lean_object* x_31; lean_object* x_32; +x_31 = lean_ctor_get(x_2, 0); +x_32 = l_Lean_Meta_FVarSubst_apply(x_1, x_31); +lean_ctor_set(x_2, 0, x_32); return x_2; } else { -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_2, 0); -lean_inc(x_31); +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_2, 0); +lean_inc(x_33); lean_dec(x_2); -x_32 = l_Lean_Meta_FVarSubst_apply(x_1, x_31); -x_33 = lean_alloc_ctor(3, 1, 0); -lean_ctor_set(x_33, 0, x_32); -return x_33; +x_34 = l_Lean_Meta_FVarSubst_apply(x_1, x_33); +x_35 = lean_alloc_ctor(3, 1, 0); +lean_ctor_set(x_35, 0, x_34); +return x_35; } } case 4: { -uint8_t x_34; -x_34 = !lean_is_exclusive(x_2); -if (x_34 == 0) +uint8_t x_36; +x_36 = !lean_is_exclusive(x_2); +if (x_36 == 0) { -lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_35 = lean_ctor_get(x_2, 0); -x_36 = lean_ctor_get(x_2, 1); -x_37 = l_Lean_Meta_FVarSubst_apply(x_1, x_35); -x_38 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(x_1, x_36); -lean_ctor_set(x_2, 1, x_38); -lean_ctor_set(x_2, 0, x_37); +lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; +x_37 = lean_ctor_get(x_2, 0); +x_38 = lean_ctor_get(x_2, 1); +x_39 = l_Lean_Meta_FVarSubst_apply(x_1, x_37); +x_40 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(x_1, x_38); +lean_ctor_set(x_2, 1, x_40); +lean_ctor_set(x_2, 0, x_39); return x_2; } else { -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_2, 0); -x_40 = lean_ctor_get(x_2, 1); -lean_inc(x_40); -lean_inc(x_39); +lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; +x_41 = lean_ctor_get(x_2, 0); +x_42 = lean_ctor_get(x_2, 1); +lean_inc(x_42); +lean_inc(x_41); lean_dec(x_2); -x_41 = l_Lean_Meta_FVarSubst_apply(x_1, x_39); -x_42 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(x_1, x_40); -x_43 = lean_alloc_ctor(4, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; +x_43 = l_Lean_Meta_FVarSubst_apply(x_1, x_41); +x_44 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(x_1, x_42); +x_45 = lean_alloc_ctor(4, 2, 0); +lean_ctor_set(x_45, 0, x_43); +lean_ctor_set(x_45, 1, x_44); +return x_45; } } default: { -uint8_t x_44; -x_44 = !lean_is_exclusive(x_2); -if (x_44 == 0) +uint8_t x_46; +x_46 = !lean_is_exclusive(x_2); +if (x_46 == 0) { -lean_object* x_45; lean_object* x_46; lean_object* x_47; -x_45 = lean_ctor_get(x_2, 0); -x_46 = lean_ctor_get(x_2, 1); -x_47 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_45, x_1); -if (lean_obj_tag(x_47) == 0) +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_2, 0); +x_48 = lean_ctor_get(x_2, 1); +x_49 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_47, x_1); +if (lean_obj_tag(x_49) == 0) { -lean_object* x_48; -x_48 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_46); -lean_ctor_set(x_2, 1, x_48); +lean_object* x_50; +x_50 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_48); +lean_ctor_set(x_2, 1, x_50); return x_2; } else { -lean_dec(x_47); +lean_dec(x_49); lean_free_object(x_2); -lean_dec(x_45); -x_2 = x_46; +lean_dec(x_47); +x_2 = x_48; goto _start; } } else { -lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_50 = lean_ctor_get(x_2, 0); -x_51 = lean_ctor_get(x_2, 1); -lean_inc(x_51); -lean_inc(x_50); +lean_object* x_52; lean_object* x_53; lean_object* x_54; +x_52 = lean_ctor_get(x_2, 0); +x_53 = lean_ctor_get(x_2, 1); +lean_inc(x_53); +lean_inc(x_52); lean_dec(x_2); -x_52 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_50, x_1); -if (lean_obj_tag(x_52) == 0) +x_54 = l_Std_AssocList_find_x3f___main___at_Lean_Meta_FVarSubst_find_x3f___spec__1(x_52, x_1); +if (lean_obj_tag(x_54) == 0) { -lean_object* x_53; lean_object* x_54; -x_53 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_51); -x_54 = lean_alloc_ctor(5, 2, 0); -lean_ctor_set(x_54, 0, x_50); -lean_ctor_set(x_54, 1, x_53); -return x_54; +lean_object* x_55; lean_object* x_56; +x_55 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_53); +x_56 = lean_alloc_ctor(5, 2, 0); +lean_ctor_set(x_56, 0, x_52); +lean_ctor_set(x_56, 1, x_55); +return x_56; } else { +lean_dec(x_54); lean_dec(x_52); -lean_dec(x_50); -x_2 = x_51; +x_2 = x_53; goto _start; } } @@ -1904,50 +2481,33 @@ goto _start; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__1(x_1, x_2); +x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__2(x_1, x_2); +x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___main___spec__3(x_1, x_2); +x_3 = l_List_map___main___at_Lean_Meta_Match_Pattern_applyFVarSubst___spec__3(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_Meta_Match_Pattern_applyFVarSubst___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -1963,12 +2523,12 @@ _start: lean_object* x_4; lean_object* x_5; lean_object* x_6; x_4 = lean_box(0); x_5 = l_Lean_Meta_FVarSubst_insert(x_4, x_1, x_2); -x_6 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_5, x_3); +x_6 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_5, x_3); lean_dec(x_5); return x_6; } } -static lean_object* _init_l_Lean_Meta_Match_Alt_Inhabited___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; @@ -1985,11 +2545,11 @@ lean_ctor_set(x_5, 4, x_1); return x_5; } } -static lean_object* _init_l_Lean_Meta_Match_Alt_Inhabited() { +static lean_object* _init_l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2() { _start: { lean_object* x_1; -x_1 = l_Lean_Meta_Match_Alt_Inhabited___closed__1; +x_1 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1; return x_1; } } @@ -2021,6 +2581,16 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } +static lean_object* _init_l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Format_paren___closed__4; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1(lean_object* x_1) { _start: { @@ -2053,7 +2623,7 @@ lean_ctor_set(x_11, 0, x_10); x_12 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_12, 0, x_9); lean_ctor_set(x_12, 1, x_11); -x_13 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_13 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4; x_14 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -2084,7 +2654,7 @@ lean_ctor_set(x_23, 0, x_22); x_24 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_24, 0, x_21); lean_ctor_set(x_24, 1, x_23); -x_25 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_25 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4; x_26 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_26, 0, x_24); lean_ctor_set(x_26, 1, x_25); @@ -2097,49 +2667,7 @@ return x_28; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__2(lean_object* x_1) { -_start: -{ -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_2; -x_2 = lean_box(0); -return x_2; -} -else -{ -uint8_t x_3; -x_3 = !lean_is_exclusive(x_1); -if (x_3 == 0) -{ -lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; -x_4 = lean_ctor_get(x_1, 0); -x_5 = lean_ctor_get(x_1, 1); -x_6 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_4); -x_7 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__2(x_5); -lean_ctor_set(x_1, 1, x_7); -lean_ctor_set(x_1, 0, x_6); -return x_1; -} -else -{ -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_8 = lean_ctor_get(x_1, 0); -x_9 = lean_ctor_get(x_1, 1); -lean_inc(x_9); -lean_inc(x_8); -lean_dec(x_1); -x_10 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_8); -x_11 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__2(x_9); -x_12 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_12, 0, x_10); -lean_ctor_set(x_12, 1, x_11); -return x_12; -} -} -} -} -lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___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* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___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) { _start: { lean_object* x_8; @@ -2190,11 +2718,11 @@ return x_16; } } } -lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3(lean_object* x_1) { +lean_object* l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg), 7, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg), 7, 0); return x_2; } } @@ -2252,7 +2780,7 @@ lean_ctor_set(x_11, 0, x_9); lean_ctor_set(x_11, 1, x_10); x_12 = lean_ctor_get(x_1, 4); lean_inc(x_12); -x_13 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__2(x_12); +x_13 = l_List_map___main___at_Lean_Meta_Match_Pattern_toMessageData___spec__2(x_12); x_14 = l_Lean_MessageData_ofList(x_13); lean_dec(x_13); x_15 = lean_alloc_ctor(10, 2, 0); @@ -2272,7 +2800,7 @@ lean_ctor_set(x_20, 0, x_17); lean_ctor_set(x_20, 1, x_19); x_21 = lean_alloc_closure((void*)(l_Lean_addMessageContextFull___at_Lean_Meta_Lean_AddMessageContext___spec__1___boxed), 6, 1); lean_closure_set(x_21, 0, x_20); -x_22 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_7, x_21, x_2, x_3, x_4, x_5, x_6); +x_22 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg(x_7, x_21, x_2, x_3, x_4, x_5, x_6); return x_22; } } @@ -2336,7 +2864,7 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_5); +x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_5); x_8 = l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__2(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); @@ -2350,7 +2878,7 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_9); +x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_9); x_12 = l_List_map___main___at_Lean_Meta_Match_Alt_applyFVarSubst___spec__2(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); @@ -2671,6 +3199,37 @@ lean_dec(x_2); return x_4; } } +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___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) { _start: { @@ -2685,7 +3244,7 @@ x_11 = l_Lean_replaceRef(x_10, x_9); lean_dec(x_9); lean_dec(x_10); lean_ctor_set(x_5, 3, x_11); -x_12 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_2, x_3, x_4, x_5, x_6, x_7); +x_12 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_2, x_3, x_4, x_5, x_6, x_7); lean_dec(x_5); return x_12; } @@ -2710,7 +3269,7 @@ lean_ctor_set(x_19, 0, x_13); lean_ctor_set(x_19, 1, x_14); lean_ctor_set(x_19, 2, x_15); lean_ctor_set(x_19, 3, x_18); -x_20 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_2, x_3, x_4, x_19, x_6, x_7); +x_20 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_2, x_3, x_4, x_19, x_6, x_7); lean_dec(x_19); return x_20; } @@ -2774,6 +3333,17 @@ lean_dec(x_3); return x_4; } } +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___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_10; lean_object* x_11; +x_10 = l_Lean_Meta_Match_Alt_replaceFVarId(x_1, x_2, x_3); +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_Meta_Match_Alt_checkAndReplaceFVarId___closed__1() { _start: { @@ -2815,74 +3385,41 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__4; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__6() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__5; -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_Meta_Match_Alt_checkAndReplaceFVarId___closed__7() { -_start: -{ lean_object* x_1; x_1 = lean_mk_string("' with type"); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8() { +static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__7() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__7; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__6; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } +static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("\nexpected type"); +return x_1; +} +} static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9() { _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8; -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_Meta_Match_Alt_checkAndReplaceFVarId___closed__10() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("expected type"); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__10; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } @@ -2925,7 +3462,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_2); -x_16 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_2, x_4, x_5, x_6, x_7, x_8); +x_16 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_2, x_4, x_5, x_6, x_7, x_8); if (lean_obj_tag(x_16) == 0) { lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -2962,11 +3499,11 @@ lean_dec(x_15); x_26 = l_Lean_mkFVar(x_25); x_27 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_27, 0, x_26); -x_28 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__6; +x_28 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__5; x_29 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_29, 0, x_28); lean_ctor_set(x_29, 1, x_27); -x_30 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9; +x_30 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__7; x_31 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_31, 0, x_29); lean_ctor_set(x_31, 1, x_30); @@ -2974,74 +3511,91 @@ x_32 = l_Lean_indentExpr(x_19); 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_MessageData_ofList___closed__3; +x_34 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9; x_35 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_35, 0, x_33); lean_ctor_set(x_35, 1, x_34); -x_36 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12; +x_36 = l_Lean_indentExpr(x_17); x_37 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_37, 0, x_35); lean_ctor_set(x_37, 1, x_36); -x_38 = l_Lean_indentExpr(x_17); +x_38 = l_Lean_Meta_throwTacticEx___rarg___closed__6; x_39 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_39, 0, x_37); lean_ctor_set(x_39, 1, x_38); x_40 = lean_alloc_closure((void*)(l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1___rarg___boxed), 7, 2); lean_closure_set(x_40, 0, x_24); lean_closure_set(x_40, 1, x_39); -x_41 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_10, x_40, x_4, x_5, x_6, x_7, x_23); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +x_41 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg(x_10, x_40, x_4, x_5, x_6, x_7, x_23); if (lean_obj_tag(x_41) == 0) { -uint8_t x_42; -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 = l_Lean_Meta_Match_Alt_replaceFVarId(x_1, x_2, x_3); -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_object* x_42; lean_object* x_43; lean_object* x_44; +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_46 = l_Lean_Meta_Match_Alt_replaceFVarId(x_1, x_2, x_3); -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; -} +x_44 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__2(x_1, x_2, x_3, x_42, x_4, x_5, x_6, x_7, x_43); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_42); +return x_44; } else { -uint8_t x_48; +uint8_t 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); lean_dec(x_1); -x_48 = !lean_is_exclusive(x_41); -if (x_48 == 0) +x_45 = !lean_is_exclusive(x_41); +if (x_45 == 0) { return x_41; } else { +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_49; lean_object* x_50; lean_object* x_51; -x_49 = lean_ctor_get(x_41, 0); -x_50 = lean_ctor_get(x_41, 1); -lean_inc(x_50); +lean_dec(x_19); +lean_dec(x_17); +lean_dec(x_15); +lean_dec(x_10); +x_49 = lean_ctor_get(x_20, 1); lean_inc(x_49); -lean_dec(x_41); -x_51 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_51, 0, x_49); -lean_ctor_set(x_51, 1, x_50); +lean_dec(x_20); +x_50 = lean_box(0); +x_51 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___lambda__2(x_1, x_2, x_3, x_50, x_4, x_5, x_6, x_7, x_49); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); return x_51; } } -} else { uint8_t x_52; @@ -3053,35 +3607,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); +lean_dec(x_1); x_52 = !lean_is_exclusive(x_20); if (x_52 == 0) { -lean_object* x_53; lean_object* x_54; +return x_20; +} +else +{ +lean_object* x_53; lean_object* x_54; lean_object* x_55; x_53 = lean_ctor_get(x_20, 0); -lean_dec(x_53); -x_54 = l_Lean_Meta_Match_Alt_replaceFVarId(x_1, x_2, x_3); -lean_ctor_set(x_20, 0, x_54); -return x_20; -} -else -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; -x_55 = lean_ctor_get(x_20, 1); -lean_inc(x_55); +x_54 = lean_ctor_get(x_20, 1); +lean_inc(x_54); +lean_inc(x_53); lean_dec(x_20); -x_56 = l_Lean_Meta_Match_Alt_replaceFVarId(x_1, x_2, x_3); -x_57 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_57, 0, x_56); -lean_ctor_set(x_57, 1, x_55); -return x_57; +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_58; -lean_dec(x_19); -lean_dec(x_17); +uint8_t x_56; lean_dec(x_15); lean_dec(x_10); lean_dec(x_7); @@ -3091,55 +3642,23 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_58 = !lean_is_exclusive(x_20); -if (x_58 == 0) -{ -return x_20; -} -else -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_20, 0); -x_60 = lean_ctor_get(x_20, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_20); -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 -{ -uint8_t x_62; -lean_dec(x_15); -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); -lean_dec(x_1); -x_62 = !lean_is_exclusive(x_16); -if (x_62 == 0) +x_56 = !lean_is_exclusive(x_16); +if (x_56 == 0) { return x_16; } else { -lean_object* x_63; lean_object* x_64; lean_object* x_65; -x_63 = lean_ctor_get(x_16, 0); -x_64 = lean_ctor_get(x_16, 1); -lean_inc(x_64); -lean_inc(x_63); +lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_16, 0); +x_58 = lean_ctor_get(x_16, 1); +lean_inc(x_58); +lean_inc(x_57); lean_dec(x_16); -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; +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; } } } @@ -3168,7 +3687,82 @@ x_4 = lean_box(x_3); return x_4; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___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_10; +x_10 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___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); +return x_10; +} +} +lean_object* l_Lean_Meta_Match_Example_replaceFVarId_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +case 2: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_2(x_3, x_8, x_9); +return x_10; +} +case 4: +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_1(x_4, x_11); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_5, x_1); +return x_13; +} +} +} +} +lean_object* l_Lean_Meta_Match_Example_replaceFVarId_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Example_replaceFVarId_match__1___rarg), 5, 0); +return x_2; +} +} +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -3186,8 +3780,8 @@ if (x_5 == 0) lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; x_6 = lean_ctor_get(x_3, 0); x_7 = lean_ctor_get(x_3, 1); -x_8 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_6); -x_9 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(x_1, x_2, x_7); +x_8 = l_Lean_Meta_Match_Example_replaceFVarId(x_1, x_2, x_6); +x_9 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(x_1, x_2, x_7); lean_ctor_set(x_3, 1, x_9); lean_ctor_set(x_3, 0, x_8); return x_3; @@ -3200,8 +3794,8 @@ x_11 = lean_ctor_get(x_3, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_3); -x_12 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_10); -x_13 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(x_1, x_2, x_11); +x_12 = l_Lean_Meta_Match_Example_replaceFVarId(x_1, x_2, x_10); +x_13 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(x_1, x_2, x_11); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -3210,7 +3804,7 @@ return x_14; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -3228,8 +3822,8 @@ if (x_5 == 0) lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; x_6 = lean_ctor_get(x_3, 0); x_7 = lean_ctor_get(x_3, 1); -x_8 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_6); -x_9 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(x_1, x_2, x_7); +x_8 = l_Lean_Meta_Match_Example_replaceFVarId(x_1, x_2, x_6); +x_9 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(x_1, x_2, x_7); lean_ctor_set(x_3, 1, x_9); lean_ctor_set(x_3, 0, x_8); return x_3; @@ -3242,8 +3836,8 @@ x_11 = lean_ctor_get(x_3, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_3); -x_12 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_10); -x_13 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(x_1, x_2, x_11); +x_12 = l_Lean_Meta_Match_Example_replaceFVarId(x_1, x_2, x_10); +x_13 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(x_1, x_2, x_11); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -3252,77 +3846,102 @@ return x_14; } } } -lean_object* l_Lean_Meta_Match_Example_replaceFVarId___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Meta_Match_Example_replaceFVarId(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { switch (lean_obj_tag(x_3)) { case 0: { -lean_object* x_4; uint8_t x_5; -x_4 = lean_ctor_get(x_3, 0); -lean_inc(x_4); -x_5 = lean_name_eq(x_4, x_1); -lean_dec(x_4); -if (x_5 == 0) +uint8_t x_4; +x_4 = !lean_is_exclusive(x_3); +if (x_4 == 0) +{ +lean_object* x_5; uint8_t x_6; +x_5 = lean_ctor_get(x_3, 0); +x_6 = lean_name_eq(x_5, x_1); +if (x_6 == 0) { return x_3; } else { -lean_dec(x_3); +lean_free_object(x_3); +lean_dec(x_5); lean_inc(x_2); return x_2; } } +else +{ +lean_object* x_7; uint8_t x_8; +x_7 = lean_ctor_get(x_3, 0); +lean_inc(x_7); +lean_dec(x_3); +x_8 = lean_name_eq(x_7, x_1); +if (x_8 == 0) +{ +lean_object* x_9; +x_9 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_9, 0, x_7); +return x_9; +} +else +{ +lean_dec(x_7); +lean_inc(x_2); +return x_2; +} +} +} case 2: { -uint8_t x_6; -x_6 = !lean_is_exclusive(x_3); -if (x_6 == 0) +uint8_t x_10; +x_10 = !lean_is_exclusive(x_3); +if (x_10 == 0) { -lean_object* x_7; lean_object* x_8; -x_7 = lean_ctor_get(x_3, 1); -x_8 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(x_1, x_2, x_7); -lean_ctor_set(x_3, 1, x_8); +lean_object* x_11; lean_object* x_12; +x_11 = lean_ctor_get(x_3, 1); +x_12 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(x_1, x_2, x_11); +lean_ctor_set(x_3, 1, x_12); return x_3; } else { -lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; -x_9 = lean_ctor_get(x_3, 0); -x_10 = lean_ctor_get(x_3, 1); -lean_inc(x_10); -lean_inc(x_9); +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_3, 0); +x_14 = lean_ctor_get(x_3, 1); +lean_inc(x_14); +lean_inc(x_13); lean_dec(x_3); -x_11 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(x_1, x_2, x_10); -x_12 = lean_alloc_ctor(2, 2, 0); -lean_ctor_set(x_12, 0, x_9); -lean_ctor_set(x_12, 1, x_11); -return x_12; +x_15 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(x_1, x_2, x_14); +x_16 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_16, 0, x_13); +lean_ctor_set(x_16, 1, x_15); +return x_16; } } case 4: { -uint8_t x_13; -x_13 = !lean_is_exclusive(x_3); -if (x_13 == 0) +uint8_t x_17; +x_17 = !lean_is_exclusive(x_3); +if (x_17 == 0) { -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_3, 0); -x_15 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(x_1, x_2, x_14); -lean_ctor_set(x_3, 0, x_15); +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_3, 0); +x_19 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(x_1, x_2, x_18); +lean_ctor_set(x_3, 0, x_19); return x_3; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_16 = lean_ctor_get(x_3, 0); -lean_inc(x_16); +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_3, 0); +lean_inc(x_20); lean_dec(x_3); -x_17 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(x_1, x_2, x_16); -x_18 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_18, 0, x_17); -return x_18; +x_21 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(x_1, x_2, x_20); +x_22 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_22, 0, x_21); +return x_22; } } default: @@ -3332,44 +3951,26 @@ return x_3; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__1(x_1, x_2, x_3); +x_4 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__1(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___main___spec__2(x_1, x_2, x_3); +x_4 = l_List_map___main___at_Lean_Meta_Match_Example_replaceFVarId___spec__2(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_Lean_Meta_Match_Example_replaceFVarId___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_4; -} -} -lean_object* l_Lean_Meta_Match_Example_replaceFVarId(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_1, x_2, x_3); -return x_4; -} -} lean_object* l_Lean_Meta_Match_Example_replaceFVarId___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -3380,7 +3981,101 @@ lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Example_applyFVarSubst_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +case 2: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_2(x_3, x_8, x_9); +return x_10; +} +case 4: +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_1(x_4, x_11); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_5, x_1); +return x_13; +} +} +} +} +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Example_applyFVarSubst_match__2___rarg), 5, 0); +return x_2; +} +} +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -3398,8 +4093,8 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_5); -x_8 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(x_1, x_6); +x_7 = l_Lean_Meta_Match_Example_applyFVarSubst(x_1, x_5); +x_8 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -3412,8 +4107,8 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_9); -x_12 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(x_1, x_10); +x_11 = l_Lean_Meta_Match_Example_applyFVarSubst(x_1, x_9); +x_12 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -3422,7 +4117,7 @@ return x_13; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -3440,8 +4135,8 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_5); -x_8 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(x_1, x_6); +x_7 = l_Lean_Meta_Match_Example_applyFVarSubst(x_1, x_5); +x_8 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -3454,8 +4149,8 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_9); -x_12 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(x_1, x_10); +x_11 = l_Lean_Meta_Match_Example_applyFVarSubst(x_1, x_9); +x_12 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -3464,7 +4159,7 @@ return x_13; } } } -lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___main(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_Match_Example_applyFVarSubst(lean_object* x_1, lean_object* x_2) { _start: { switch (lean_obj_tag(x_2)) { @@ -3529,7 +4224,7 @@ if (x_13 == 0) { lean_object* x_14; lean_object* x_15; x_14 = lean_ctor_get(x_2, 1); -x_15 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(x_1, x_14); +x_15 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(x_1, x_14); lean_ctor_set(x_2, 1, x_15); return x_2; } @@ -3541,7 +4236,7 @@ x_17 = lean_ctor_get(x_2, 1); lean_inc(x_17); lean_inc(x_16); lean_dec(x_2); -x_18 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(x_1, x_17); +x_18 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(x_1, x_17); x_19 = lean_alloc_ctor(2, 2, 0); lean_ctor_set(x_19, 0, x_16); lean_ctor_set(x_19, 1, x_18); @@ -3556,7 +4251,7 @@ if (x_20 == 0) { lean_object* x_21; lean_object* x_22; x_21 = lean_ctor_get(x_2, 0); -x_22 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(x_1, x_21); +x_22 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(x_1, x_21); lean_ctor_set(x_2, 0, x_22); return x_2; } @@ -3566,7 +4261,7 @@ lean_object* x_23; lean_object* x_24; lean_object* x_25; x_23 = lean_ctor_get(x_2, 0); lean_inc(x_23); lean_dec(x_2); -x_24 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(x_1, x_23); +x_24 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(x_1, x_23); x_25 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_25, 0, x_24); return x_25; @@ -3579,41 +4274,24 @@ return x_2; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__1(x_1, x_2); +x_3 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__1(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___main___spec__2(x_1, x_2); +x_3 = l_List_map___main___at_Lean_Meta_Match_Example_applyFVarSubst___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___main___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_2); -lean_dec(x_1); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_Example_applyFVarSubst(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_1, x_2); -return x_3; -} -} lean_object* l_Lean_Meta_Match_Example_applyFVarSubst___boxed(lean_object* x_1, lean_object* x_2) { _start: { @@ -3623,7 +4301,69 @@ lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Example_varsToUnderscore_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +case 2: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_2(x_3, x_8, x_9); +return x_10; +} +case 4: +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 0); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_apply_1(x_4, x_11); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_5, x_1); +return x_13; +} +} +} +} +lean_object* l_Lean_Meta_Match_Example_varsToUnderscore_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Example_varsToUnderscore_match__1___rarg), 5, 0); +return x_2; +} +} +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -3641,8 +4381,8 @@ if (x_3 == 0) lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); -x_6 = l_Lean_Meta_Match_Example_varsToUnderscore___main(x_4); -x_7 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_5); +x_6 = l_Lean_Meta_Match_Example_varsToUnderscore(x_4); +x_7 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_5); lean_ctor_set(x_1, 1, x_7); lean_ctor_set(x_1, 0, x_6); return x_1; @@ -3655,8 +4395,8 @@ x_9 = lean_ctor_get(x_1, 1); lean_inc(x_9); lean_inc(x_8); lean_dec(x_1); -x_10 = l_Lean_Meta_Match_Example_varsToUnderscore___main(x_8); -x_11 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_9); +x_10 = l_Lean_Meta_Match_Example_varsToUnderscore(x_8); +x_11 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_9); x_12 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_12, 0, x_10); lean_ctor_set(x_12, 1, x_11); @@ -3665,7 +4405,7 @@ return x_12; } } } -lean_object* l_Lean_Meta_Match_Example_varsToUnderscore___main(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Example_varsToUnderscore(lean_object* x_1) { _start: { switch (lean_obj_tag(x_1)) { @@ -3684,7 +4424,7 @@ if (x_3 == 0) { lean_object* x_4; lean_object* x_5; x_4 = lean_ctor_get(x_1, 1); -x_5 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_4); +x_5 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_4); lean_ctor_set(x_1, 1, x_5); return x_1; } @@ -3696,7 +4436,7 @@ x_7 = lean_ctor_get(x_1, 1); lean_inc(x_7); lean_inc(x_6); lean_dec(x_1); -x_8 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_7); +x_8 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_7); x_9 = lean_alloc_ctor(2, 2, 0); lean_ctor_set(x_9, 0, x_6); lean_ctor_set(x_9, 1, x_8); @@ -3711,7 +4451,7 @@ if (x_10 == 0) { lean_object* x_11; lean_object* x_12; x_11 = lean_ctor_get(x_1, 0); -x_12 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_11); +x_12 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_11); lean_ctor_set(x_1, 0, x_12); return x_1; } @@ -3721,7 +4461,7 @@ lean_object* x_13; lean_object* x_14; lean_object* x_15; x_13 = lean_ctor_get(x_1, 0); lean_inc(x_13); lean_dec(x_1); -x_14 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___main___spec__1(x_13); +x_14 = l_List_map___main___at_Lean_Meta_Match_Example_varsToUnderscore___spec__1(x_13); x_15 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_15, 0, x_14); return x_15; @@ -3734,15 +4474,106 @@ return x_1; } } } -lean_object* l_Lean_Meta_Match_Example_varsToUnderscore(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Example_toMessageData_match__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) { +_start: +{ +switch (lean_obj_tag(x_1)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_apply_1(x_2, x_8); +return x_9; +} +case 1: +{ +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); +x_10 = lean_box(0); +x_11 = lean_apply_1(x_7, x_10); +return x_11; +} +case 2: +{ +lean_object* x_12; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_2); +x_12 = lean_ctor_get(x_1, 1); +lean_inc(x_12); +if (lean_obj_tag(x_12) == 0) +{ +lean_object* x_13; lean_object* x_14; +lean_dec(x_4); +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_1(x_3, x_13); +return x_14; +} +else +{ +lean_object* x_15; lean_object* x_16; +lean_dec(x_3); +x_15 = lean_ctor_get(x_1, 0); +lean_inc(x_15); +lean_dec(x_1); +x_16 = lean_apply_2(x_4, x_15, x_12); +return x_16; +} +} +case 3: +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_7); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_17 = lean_ctor_get(x_1, 0); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_1(x_6, x_17); +return x_18; +} +default: +{ +lean_object* x_19; lean_object* x_20; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_19 = lean_ctor_get(x_1, 0); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_1(x_5, x_19); +return x_20; +} +} +} +} +lean_object* l_Lean_Meta_Match_Example_toMessageData_match__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l_Lean_Meta_Match_Example_varsToUnderscore___main(x_1); +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Example_toMessageData_match__1___rarg), 7, 0); return x_2; } } -lean_object* l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -3761,7 +4592,7 @@ x_5 = l___private_Lean_Meta_ExprDefEq_12__addAssignmentInfo___closed__4; x_6 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_6, 0, x_1); lean_ctor_set(x_6, 1, x_5); -x_7 = l_Lean_Meta_Match_Example_toMessageData___main(x_3); +x_7 = l_Lean_Meta_Match_Example_toMessageData(x_3); x_8 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_8, 0, x_6); lean_ctor_set(x_8, 1, x_7); @@ -3771,7 +4602,7 @@ goto _start; } } } -lean_object* l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__2(lean_object* x_1) { +lean_object* l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___spec__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -3789,8 +4620,8 @@ if (x_3 == 0) lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); -x_6 = l_Lean_Meta_Match_Example_toMessageData___main(x_4); -x_7 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__2(x_5); +x_6 = l_Lean_Meta_Match_Example_toMessageData(x_4); +x_7 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___spec__2(x_5); lean_ctor_set(x_1, 1, x_7); lean_ctor_set(x_1, 0, x_6); return x_1; @@ -3803,8 +4634,8 @@ x_9 = lean_ctor_get(x_1, 1); lean_inc(x_9); lean_inc(x_8); lean_dec(x_1); -x_10 = l_Lean_Meta_Match_Example_toMessageData___main(x_8); -x_11 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__2(x_9); +x_10 = l_Lean_Meta_Match_Example_toMessageData(x_8); +x_11 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___spec__2(x_9); x_12 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_12, 0, x_10); lean_ctor_set(x_12, 1, x_11); @@ -3813,7 +4644,7 @@ return x_12; } } } -static lean_object* _init_l_Lean_Meta_Match_Example_toMessageData___main___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Example_toMessageData___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -3823,17 +4654,27 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Example_toMessageData___main___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_Example_toMessageData___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Example_toMessageData___main___closed__1; +x_1 = l_Lean_Meta_Match_Example_toMessageData___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_Meta_Match_Example_toMessageData___main___closed__3() { +static lean_object* _init_l_Lean_Meta_Match_Example_toMessageData___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Format_paren___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_Meta_Match_Example_toMessageData___closed__4() { _start: { lean_object* x_1; lean_object* x_2; @@ -3843,7 +4684,7 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_Meta_Match_Example_toMessageData___main(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_Example_toMessageData(lean_object* x_1) { _start: { switch (lean_obj_tag(x_1)) { @@ -3861,7 +4702,7 @@ return x_4; case 1: { lean_object* x_5; -x_5 = l_Lean_Meta_Match_Example_toMessageData___main___closed__2; +x_5 = l_Lean_Meta_Match_Example_toMessageData___closed__2; return x_5; } case 2: @@ -3891,16 +4732,16 @@ x_12 = lean_box(0); x_13 = l_Lean_mkConst(x_11, x_12); x_14 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_14, 0, x_13); -x_15 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5; +x_15 = l_Lean_Meta_Match_Example_toMessageData___closed__3; x_16 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_16, 0, x_15); lean_ctor_set(x_16, 1, x_14); x_17 = l_Lean_MessageData_Inhabited___closed__1; -x_18 = l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__1(x_17, x_6); +x_18 = l_List_foldl___main___at_Lean_Meta_Match_Example_toMessageData___spec__1(x_17, x_6); x_19 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_19, 0, x_16); lean_ctor_set(x_19, 1, x_18); -x_20 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_20 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___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); @@ -3923,10 +4764,10 @@ lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean x_24 = lean_ctor_get(x_1, 0); lean_inc(x_24); lean_dec(x_1); -x_25 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___main___spec__2(x_24); +x_25 = l_List_map___main___at_Lean_Meta_Match_Example_toMessageData___spec__2(x_24); x_26 = l_Lean_MessageData_ofList(x_25); lean_dec(x_25); -x_27 = l_Lean_Meta_Match_Example_toMessageData___main___closed__3; +x_27 = l_Lean_Meta_Match_Example_toMessageData___closed__4; x_28 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_28, 0, x_27); lean_ctor_set(x_28, 1, x_26); @@ -3935,14 +4776,6 @@ return x_28; } } } -lean_object* l_Lean_Meta_Match_Example_toMessageData(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Lean_Meta_Match_Example_toMessageData___main(x_1); -return x_2; -} -} lean_object* l_List_map___main___at_Lean_Meta_Match_examplesToMessageData___spec__1(lean_object* x_1) { _start: { @@ -3961,8 +4794,8 @@ if (x_3 == 0) 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_1, 0); x_5 = lean_ctor_get(x_1, 1); -x_6 = l_Lean_Meta_Match_Example_varsToUnderscore___main(x_4); -x_7 = l_Lean_Meta_Match_Example_toMessageData___main(x_6); +x_6 = l_Lean_Meta_Match_Example_varsToUnderscore(x_4); +x_7 = l_Lean_Meta_Match_Example_toMessageData(x_6); x_8 = l_List_map___main___at_Lean_Meta_Match_examplesToMessageData___spec__1(x_5); lean_ctor_set(x_1, 1, x_8); lean_ctor_set(x_1, 0, x_7); @@ -3976,8 +4809,8 @@ x_10 = lean_ctor_get(x_1, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_1); -x_11 = l_Lean_Meta_Match_Example_varsToUnderscore___main(x_9); -x_12 = l_Lean_Meta_Match_Example_toMessageData___main(x_11); +x_11 = l_Lean_Meta_Match_Example_varsToUnderscore(x_9); +x_12 = l_Lean_Meta_Match_Example_toMessageData(x_11); x_13 = l_List_map___main___at_Lean_Meta_Match_examplesToMessageData___spec__1(x_10); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); @@ -4017,7 +4850,7 @@ x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_withGoalOf___rarg), 7, 0); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Problem_Inhabited___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -4031,11 +4864,11 @@ lean_ctor_set(x_3, 3, x_1); return x_3; } } -static lean_object* _init_l_Lean_Meta_Match_Problem_Inhabited() { +static lean_object* _init_l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3() { _start: { lean_object* x_1; -x_1 = l_Lean_Meta_Match_Problem_Inhabited___closed__1; +x_1 = l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1; return x_1; } } @@ -4299,7 +5132,7 @@ lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); lean_inc(x_10); -x_12 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_10, x_2, x_3, x_4, x_5, x_6); +x_12 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_10, x_2, x_3, x_4, x_5, x_6); 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_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; @@ -4319,7 +5152,7 @@ lean_ctor_set(x_18, 0, x_13); x_19 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_19, 0, x_17); lean_ctor_set(x_19, 1, x_18); -x_20 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_20 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___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); @@ -4421,7 +5254,7 @@ lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); lean_inc(x_36); -x_38 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_36, x_2, x_3, x_4, x_5, x_6); +x_38 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_36, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_38) == 0) { 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; @@ -4441,7 +5274,7 @@ lean_ctor_set(x_44, 0, x_39); x_45 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_45, 0, x_43); lean_ctor_set(x_45, 1, x_44); -x_46 = l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4; +x_46 = l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4; x_47 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_47, 0, x_45); lean_ctor_set(x_47, 1, x_46); @@ -4834,7 +5667,7 @@ lean_dec(x_2); return x_4; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -4846,7 +5679,7 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1(x_1, x_2, x_5); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1(x_1, x_2, x_5); x_7 = lean_ctor_get(x_4, 2); x_8 = lean_unsigned_to_nat(0u); x_9 = l_List_lengthAux___main___rarg(x_7, x_8); @@ -4865,7 +5698,7 @@ return x_6; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1() { _start: { lean_object* x_1; @@ -4873,33 +5706,33 @@ x_1 = lean_mk_string("incorrect number of patterns"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns(lean_object* x_1, 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; uint8_t x_10; x_8 = lean_array_get_size(x_1); x_9 = 0; -x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1(x_8, x_9, x_2); +x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1(x_8, x_9, x_2); lean_dec(x_8); if (x_10 == 0) { @@ -4913,30 +5746,30 @@ return x_12; else { lean_object* x_13; lean_object* x_14; -x_13 = l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3; -x_14 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_13, x_3, x_4, x_5, x_6, x_7); +x_13 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3; +x_14 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_13, x_3, x_4, x_5, x_6, x_7); return x_14; } } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_1__checkNumPatterns___spec__1(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___spec__1(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l___private_Lean_Meta_Match_Match_1__checkNumPatterns___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___boxed(lean_object* x_1, 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_Meta_Match_Match_1__checkNumPatterns(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns(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); @@ -4946,7 +5779,60 @@ lean_dec(x_1); return x_8; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__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 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__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) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_7; +lean_dec(x_6); +x_7 = lean_apply_3(x_5, x_2, x_3, x_4); +return x_7; +} +else +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +x_8 = lean_ctor_get(x_1, 0); +lean_inc(x_8); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_apply_5(x_6, x_8, x_9, x_2, x_3, x_4); +return x_10; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__2(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux_match__2___rarg), 6, 0); +return x_3; +} +} +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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; uint8_t x_9; @@ -4978,7 +5864,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_16 = l_Lean_Meta_Match_Pattern_toExpr___main(x_15, x_3, x_4, x_5, x_6, x_7); +x_16 = l_Lean_Meta_Match_Pattern_toExpr(x_15, x_3, x_4, x_5, x_6, x_7); 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; @@ -5028,7 +5914,7 @@ return x_27; } } } -lean_object* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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: { if (lean_obj_tag(x_1) == 0) @@ -5201,7 +6087,7 @@ return x_52; } } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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) { _start: { if (lean_obj_tag(x_1) == 0) @@ -5222,13 +6108,13 @@ 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; uint8_t x_16; x_10 = lean_ctor_get(x_1, 0); x_11 = lean_ctor_get(x_1, 1); -x_12 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__2(x_10, x_2, x_3, x_4, x_5, x_6); +x_12 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__2(x_10, x_2, x_3, x_4, x_5, x_6); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); lean_inc(x_14); lean_dec(x_12); -x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3(x_11, x_2, x_3, x_4, x_5, x_14); +x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3(x_11, x_2, x_3, x_4, x_5, x_14); x_16 = !lean_is_exclusive(x_15); if (x_16 == 0) { @@ -5263,13 +6149,13 @@ x_22 = lean_ctor_get(x_1, 1); lean_inc(x_22); lean_inc(x_21); lean_dec(x_1); -x_23 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__2(x_21, x_2, x_3, x_4, x_5, x_6); +x_23 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__2(x_21, x_2, x_3, x_4, x_5, x_6); 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_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3(x_22, x_2, x_3, x_4, x_5, x_25); +x_26 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3(x_22, x_2, x_3, x_4, x_5, x_25); x_27 = lean_ctor_get(x_26, 0); lean_inc(x_27); x_28 = lean_ctor_get(x_26, 1); @@ -5297,78 +6183,27 @@ return x_31; } } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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) { _start: { lean_object* x_9; lean_object* x_10; lean_object* x_11; x_9 = lean_unsigned_to_nat(0u); x_10 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_3, x_3, x_9, x_1); -x_11 = l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(x_2, x_10, x_4, x_5, x_6, x_7, x_8); +x_11 = l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(x_2, x_10, x_4, x_5, x_6, x_7, x_8); return x_11; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1() { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2(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, lean_object* x_15, lean_object* x_16, lean_object* x_17, lean_object* x_18) { _start: { -lean_object* x_1; -x_1 = lean_mk_string("minor premise "); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___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; lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_4 = lean_alloc_ctor(4, 1, 0); -lean_ctor_set(x_4, 0, x_1); -x_5 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3; -x_6 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_4); -x_7 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7; -x_8 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_8, 0, x_6); -lean_ctor_set(x_8, 1, x_7); -x_9 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_9, 0, x_2); -x_10 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_10, 0, x_8); -lean_ctor_set(x_10, 1, x_9); -return x_10; -} -} -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___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, lean_object* x_16, lean_object* x_17) { -_start: -{ -uint8_t x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_18 = l_Array_isEmpty___rarg(x_1); -lean_inc(x_12); +lean_object* x_19; lean_object* x_20; lean_object* x_21; +lean_inc(x_13); x_19 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_19, 0, x_12); -lean_ctor_set(x_19, 1, x_2); -x_20 = lean_array_push(x_3, x_19); -x_21 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3(x_4, x_13, x_14, x_15, x_16, x_17); -if (x_18 == 0) +lean_ctor_set(x_19, 0, x_13); +lean_ctor_set(x_19, 1, x_1); +x_20 = lean_array_push(x_2, x_19); +x_21 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3(x_3, x_14, x_15, x_16, x_17, x_18); +if (x_4 == 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; x_22 = lean_ctor_get(x_21, 0); @@ -5377,17 +6212,17 @@ x_23 = lean_ctor_get(x_21, 1); lean_inc(x_23); lean_dec(x_21); x_24 = lean_unsigned_to_nat(0u); -x_25 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_1, x_1, x_24, x_12); +x_25 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_5, x_5, x_24, x_13); x_26 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_26, 0, x_5); -lean_ctor_set(x_26, 1, x_6); +lean_ctor_set(x_26, 0, x_6); +lean_ctor_set(x_26, 1, x_7); lean_ctor_set(x_26, 2, x_25); lean_ctor_set(x_26, 3, x_22); -lean_ctor_set(x_26, 4, x_7); +lean_ctor_set(x_26, 4, x_8); x_27 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_27, 0, x_26); -lean_ctor_set(x_27, 1, x_8); -x_28 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg(x_9, x_10, x_27, x_20, x_11, x_13, x_14, x_15, x_16, x_23); +lean_ctor_set(x_27, 1, x_9); +x_28 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg(x_10, x_11, x_27, x_20, x_12, x_14, x_15, x_16, x_17, x_23); return x_28; } else @@ -5399,22 +6234,22 @@ x_30 = lean_ctor_get(x_21, 1); lean_inc(x_30); lean_dec(x_21); x_31 = l_Lean_unitToExpr___lambda__1___closed__3; -x_32 = l_Lean_mkApp(x_12, x_31); +x_32 = l_Lean_mkApp(x_13, x_31); x_33 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_33, 0, x_5); -lean_ctor_set(x_33, 1, x_6); +lean_ctor_set(x_33, 0, x_6); +lean_ctor_set(x_33, 1, x_7); lean_ctor_set(x_33, 2, x_32); lean_ctor_set(x_33, 3, x_29); -lean_ctor_set(x_33, 4, x_7); +lean_ctor_set(x_33, 4, x_8); x_34 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_34, 0, x_33); -lean_ctor_set(x_34, 1, x_8); -x_35 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg(x_9, x_10, x_34, x_20, x_11, x_13, x_14, x_15, x_16, x_30); +lean_ctor_set(x_34, 1, x_9); +x_35 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg(x_10, x_11, x_34, x_20, x_12, x_14, x_15, x_16, x_17, x_30); return x_35; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1() { _start: { lean_object* x_1; @@ -5422,27 +6257,55 @@ x_1 = lean_mk_string("Match"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__2; -x_2 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1; +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; x_2 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__3; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___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) { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("minor premise "); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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: { if (lean_obj_tag(x_2) == 0) @@ -5483,13 +6346,13 @@ lean_dec(x_25); lean_inc(x_17); x_27 = l_List_toArrayAux___main___rarg(x_17, x_26); x_28 = x_27; -x_29 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__1), 7, 2); +x_29 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__1), 7, 2); lean_closure_set(x_29, 0, x_22); lean_closure_set(x_29, 1, x_28); x_30 = x_29; lean_inc(x_24); lean_inc(x_1); -x_31 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__1___boxed), 8, 2); +x_31 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__1___boxed), 8, 2); lean_closure_set(x_31, 0, x_1); lean_closure_set(x_31, 1, x_24); x_32 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); @@ -5500,71 +6363,160 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_16); -x_33 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_16, x_32, x_6, x_7, x_8, x_9, x_10); +x_33 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg(x_16, x_32, x_6, x_7, x_8, x_9, x_10); if (lean_obj_tag(x_33) == 0) { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_51; +lean_object* x_34; lean_object* x_35; uint8_t x_36; lean_object* x_37; 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_51 = l_Array_isEmpty___rarg(x_24); -if (x_51 == 0) +x_36 = l_Array_isEmpty___rarg(x_24); +if (x_36 == 0) { -lean_object* x_52; -x_52 = lean_array_get_size(x_24); -x_36 = x_34; -x_37 = x_52; -goto block_50; +lean_object* x_79; lean_object* x_80; +x_79 = lean_array_get_size(x_24); +x_80 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_80, 0, x_34); +lean_ctor_set(x_80, 1, x_79); +x_37 = x_80; +goto block_78; } else { -lean_object* x_53; lean_object* x_54; -x_53 = l_Lean_mkSimpleThunkType(x_34); -x_54 = lean_unsigned_to_nat(1u); -x_36 = x_53; -x_37 = x_54; -goto block_50; +lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = l_Lean_mkSimpleThunkType(x_34); +x_82 = lean_unsigned_to_nat(1u); +x_83 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_83, 0, x_81); +lean_ctor_set(x_83, 1, x_82); +x_37 = x_83; +goto block_78; } -block_50: +block_78: { -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; uint8_t x_48; lean_object* x_49; -x_38 = l_List_lengthAux___main___rarg(x_3, x_22); -x_39 = lean_unsigned_to_nat(1u); -x_40 = lean_nat_add(x_38, x_39); -x_41 = l_Lean_Meta_caseValue___closed__2; -x_42 = l_Lean_Name_appendIndexAfter(x_41, x_40); -lean_inc(x_36); -lean_inc(x_42); -x_43 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___boxed), 3, 2); -lean_closure_set(x_43, 0, x_42); -lean_closure_set(x_43, 1, x_36); -x_44 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3; -x_45 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_44, x_43, x_6, x_7, x_8, x_9, x_35); -x_46 = lean_ctor_get(x_45, 1); -lean_inc(x_46); -lean_dec(x_45); -x_47 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__3___boxed), 17, 11); -lean_closure_set(x_47, 0, x_24); -lean_closure_set(x_47, 1, x_37); -lean_closure_set(x_47, 2, x_4); -lean_closure_set(x_47, 3, x_16); -lean_closure_set(x_47, 4, x_15); -lean_closure_set(x_47, 5, x_38); -lean_closure_set(x_47, 6, x_17); -lean_closure_set(x_47, 7, x_3); -lean_closure_set(x_47, 8, x_1); -lean_closure_set(x_47, 9, x_14); -lean_closure_set(x_47, 10, x_5); -x_48 = 0; -x_49 = l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(x_42, x_48, x_36, x_47, x_6, x_7, x_8, x_9, x_46); -return x_49; +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; uint8_t x_45; lean_object* x_46; lean_object* x_66; lean_object* x_67; lean_object* x_68; uint8_t x_69; +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_List_lengthAux___main___rarg(x_3, x_22); +x_41 = lean_unsigned_to_nat(1u); +x_42 = lean_nat_add(x_40, x_41); +x_43 = l_Lean_Meta_caseValue___closed__2; +x_44 = l_Lean_Name_appendIndexAfter(x_43, x_42); +x_66 = lean_st_ref_get(x_9, x_35); +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +x_68 = lean_ctor_get(x_67, 3); +lean_inc(x_68); +lean_dec(x_67); +x_69 = lean_ctor_get_uint8(x_68, sizeof(void*)*1); +lean_dec(x_68); +if (x_69 == 0) +{ +lean_object* x_70; uint8_t x_71; +x_70 = lean_ctor_get(x_66, 1); +lean_inc(x_70); +lean_dec(x_66); +x_71 = 0; +x_45 = x_71; +x_46 = x_70; +goto block_65; +} +else +{ +lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; uint8_t x_77; +x_72 = lean_ctor_get(x_66, 1); +lean_inc(x_72); +lean_dec(x_66); +x_73 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +x_74 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_73, x_6, x_7, x_8, x_9, x_72); +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_unbox(x_75); +lean_dec(x_75); +x_45 = x_77; +x_46 = x_76; +goto block_65; +} +block_65: +{ +if (x_45 == 0) +{ +lean_object* x_47; lean_object* x_48; uint8_t x_49; lean_object* x_50; +x_47 = lean_box(x_36); +x_48 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2___boxed), 18, 12); +lean_closure_set(x_48, 0, x_39); +lean_closure_set(x_48, 1, x_4); +lean_closure_set(x_48, 2, x_16); +lean_closure_set(x_48, 3, x_47); +lean_closure_set(x_48, 4, x_24); +lean_closure_set(x_48, 5, x_15); +lean_closure_set(x_48, 6, x_40); +lean_closure_set(x_48, 7, x_17); +lean_closure_set(x_48, 8, x_3); +lean_closure_set(x_48, 9, x_1); +lean_closure_set(x_48, 10, x_14); +lean_closure_set(x_48, 11, x_5); +x_49 = 0; +x_50 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_44, x_49, x_38, x_48, x_6, x_7, x_8, x_9, x_46); +return x_50; +} +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; uint8_t x_63; lean_object* x_64; +lean_inc(x_44); +x_51 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_51, 0, x_44); +x_52 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6; +x_53 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_53, 0, x_52); +lean_ctor_set(x_53, 1, x_51); +x_54 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7; +x_55 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_55, 0, x_53); +lean_ctor_set(x_55, 1, x_54); +lean_inc(x_38); +x_56 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_56, 0, x_38); +x_57 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_57, 0, x_55); +lean_ctor_set(x_57, 1, x_56); +x_58 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +x_59 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_58, x_57, x_6, x_7, x_8, x_9, x_46); +x_60 = lean_ctor_get(x_59, 1); +lean_inc(x_60); +lean_dec(x_59); +x_61 = lean_box(x_36); +x_62 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2___boxed), 18, 12); +lean_closure_set(x_62, 0, x_39); +lean_closure_set(x_62, 1, x_4); +lean_closure_set(x_62, 2, x_16); +lean_closure_set(x_62, 3, x_61); +lean_closure_set(x_62, 4, x_24); +lean_closure_set(x_62, 5, x_15); +lean_closure_set(x_62, 6, x_40); +lean_closure_set(x_62, 7, x_17); +lean_closure_set(x_62, 8, x_3); +lean_closure_set(x_62, 9, x_1); +lean_closure_set(x_62, 10, x_14); +lean_closure_set(x_62, 11, x_5); +x_63 = 0; +x_64 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_44, x_63, x_38, x_62, x_6, x_7, x_8, x_9, x_60); +return x_64; +} +} } } else { -uint8_t x_55; +uint8_t x_84; lean_dec(x_24); lean_dec(x_17); lean_dec(x_16); @@ -5578,41 +6530,41 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_55 = !lean_is_exclusive(x_33); -if (x_55 == 0) +x_84 = !lean_is_exclusive(x_33); +if (x_84 == 0) { return x_33; } else { -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_33, 0); -x_57 = lean_ctor_get(x_33, 1); -lean_inc(x_57); -lean_inc(x_56); +lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_85 = lean_ctor_get(x_33, 0); +x_86 = lean_ctor_get(x_33, 1); +lean_inc(x_86); +lean_inc(x_85); lean_dec(x_33); -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; +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; } } } } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg), 10, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg), 10, 0); return x_2; } } -lean_object* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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: { lean_object* x_7; -x_7 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__2(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_Meta_instantiateLocalDeclMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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_3); @@ -5620,11 +6572,11 @@ lean_dec(x_2); return x_7; } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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: { lean_object* x_7; -x_7 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_2__withAltsAux___main___spec__3(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___spec__3(x_1, x_2, x_3, x_4, x_5, x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); @@ -5632,11 +6584,11 @@ lean_dec(x_2); return x_7; } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___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) { _start: { lean_object* x_9; -x_9 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___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); @@ -5644,16 +6596,7 @@ lean_dec(x_3); return x_9; } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__3___boxed(lean_object** _args) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2___boxed(lean_object** _args) { lean_object* x_1 = _args[0]; lean_object* x_2 = _args[1]; lean_object* x_3 = _args[2]; @@ -5671,45 +6614,32 @@ lean_object* x_14 = _args[13]; lean_object* x_15 = _args[14]; lean_object* x_16 = _args[15]; lean_object* x_17 = _args[16]; +lean_object* x_18 = _args[17]; _start: { -lean_object* x_18; -x_18 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___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, x_16, x_17); -lean_dec(x_1); -return x_18; +uint8_t x_19; lean_object* x_20; +x_19 = lean_unbox(x_4); +lean_dec(x_4); +x_20 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___lambda__2(x_1, x_2, x_3, x_19, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13, x_14, x_15, x_16, x_17, x_18); +lean_dec(x_5); +return x_20; } } -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux___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 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_11; -} -} -lean_object* l___private_Lean_Meta_Match_Match_2__withAltsAux(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_2__withAltsAux___rarg), 10, 0); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_3__withAlts___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___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_object* x_10; lean_object* x_11; x_9 = lean_box(0); x_10 = l_Array_empty___closed__1; -x_11 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg(x_1, x_2, x_9, x_10, x_3, x_4, x_5, x_6, x_7, x_8); +x_11 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg(x_1, x_2, x_9, x_10, x_3, x_4, x_5, x_6, x_7, x_8); return x_11; } } -lean_object* l___private_Lean_Meta_Match_Match_3__withAlts(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_3__withAlts___rarg), 8, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___rarg), 8, 0); return x_2; } } @@ -5726,7 +6656,40 @@ x_10 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_9, x_3, x_4, x_5, x_6, x_7); return x_10; } } -uint8_t l___private_Lean_Meta_Match_Match_4__isDone(lean_object* x_1) { +lean_object* l_Std_mkHashSet___at_Lean_Meta_Match_State_used___default___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l_Std_mkHashSetImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_State_used___default___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = lean_unsigned_to_nat(8u); +x_2 = l_Std_mkHashSetImp___rarg(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_State_used___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Meta_Match_State_used___default___closed__1; +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_State_counterExamples___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; @@ -5735,17 +6698,66 @@ x_3 = l_List_isEmpty___rarg(x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_Match_4__isDone___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_4__isDone(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l___private_Lean_Meta_Match_Match_5__isNextVar(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 1) +{ +lean_object* x_6; lean_object* x_7; uint64_t x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get_uint64(x_5, sizeof(void*)*1); +lean_dec(x_5); +x_9 = lean_box_uint64(x_8); +x_10 = lean_apply_3(x_2, x_7, x_9, x_6); +return x_10; +} +else +{ +lean_object* x_11; +lean_dec(x_5); +lean_dec(x_2); +x_11 = lean_apply_1(x_3, x_1); +return x_11; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(lean_object* x_1) { _start: { lean_object* x_2; @@ -5775,17 +6787,66 @@ return x_6; } } } -lean_object* l___private_Lean_Meta_Match_Match_5__isNextVar___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_5__isNextVar(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 5) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = lean_apply_3(x_2, x_7, x_8, x_6); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_2); +x_10 = lean_apply_1(x_3, x_1); +return x_10; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -5797,7 +6858,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -5821,39 +6882,92 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_6__hasAsPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_6__hasAsPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_6__hasAsPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_6__hasAsPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 2) +{ +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_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +x_9 = lean_ctor_get(x_5, 2); +lean_inc(x_9); +x_10 = lean_ctor_get(x_5, 3); +lean_inc(x_10); +lean_dec(x_5); +x_11 = lean_apply_5(x_2, x_7, x_8, x_9, x_10, x_6); +return x_11; +} +else +{ +lean_object* x_12; +lean_dec(x_5); +lean_dec(x_2); +x_12 = lean_apply_1(x_3, x_1); +return x_12; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -5865,7 +6979,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -5889,39 +7003,86 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_7__hasCtorPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_7__hasCtorPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_7__hasCtorPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_7__hasCtorPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 3) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -5933,7 +7094,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -5957,39 +7118,86 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_8__hasValPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_8__hasValPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_8__hasValPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_8__hasValPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 3) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -6001,7 +7209,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -6035,39 +7243,86 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_9__hasNatValPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_9__hasNatValPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_9__hasNatValPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_9__hasNatValPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 1) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -6079,7 +7334,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -6103,39 +7358,88 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_10__hasVarPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_10__hasVarPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_10__hasVarPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_10__hasVarPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 4) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = lean_apply_3(x_2, x_7, x_8, x_6); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_2); +x_10 = lean_apply_1(x_3, x_1); +return x_10; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -6147,7 +7451,7 @@ else lean_object* x_3; lean_object* x_4; uint8_t x_5; lean_object* x_6; x_3 = lean_ctor_get(x_2, 0); x_4 = lean_ctor_get(x_2, 1); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1(x_1, x_4); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1(x_1, x_4); x_6 = lean_ctor_get(x_3, 4); if (lean_obj_tag(x_6) == 0) { @@ -6171,39 +7475,105 @@ return x_5; } } } -uint8_t l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1(uint8_t x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 0: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_3); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_2, x_8, x_7); +return x_9; +} +case 1: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +x_12 = lean_apply_2(x_3, x_11, x_10); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_4, x_1); +return x_13; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition_match__1___rarg), 4, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -6226,7 +7596,7 @@ else lean_object* x_6; lean_object* x_7; uint8_t x_8; x_6 = lean_ctor_get(x_2, 1); x_7 = lean_ctor_get(x_4, 0); -x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1(x_1, x_6); +x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1(x_1, x_6); switch (lean_obj_tag(x_7)) { case 0: { @@ -6247,39 +7617,130 @@ return x_9; } } } -uint8_t l___private_Lean_Meta_Match_Match_12__isVariableTransition(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition(lean_object* x_1) { _start: { lean_object* x_2; uint8_t x_3; uint8_t x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = 1; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_12__isVariableTransition___spec__1(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___spec__1(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_12__isVariableTransition___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_12__isVariableTransition(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_6 = lean_apply_1(x_5, x_1); +return x_6; +} +else +{ +lean_object* x_7; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_apply_2(x_4, x_9, x_8); +return x_10; +} +case 1: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_ctor_get(x_7, 0); +lean_inc(x_12); +lean_dec(x_7); +x_13 = lean_apply_2(x_3, x_12, x_11); +return x_13; +} +case 2: +{ +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_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +lean_dec(x_1); +x_15 = lean_ctor_get(x_7, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); +x_17 = lean_ctor_get(x_7, 2); +lean_inc(x_17); +x_18 = lean_ctor_get(x_7, 3); +lean_inc(x_18); +lean_dec(x_7); +x_19 = lean_apply_5(x_2, x_15, x_16, x_17, x_18, x_14); +return x_19; +} +default: +{ +lean_object* x_20; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_20 = lean_apply_1(x_5, x_1); +return x_20; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition_match__1___rarg), 5, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -6302,7 +7763,7 @@ else lean_object* x_7; lean_object* x_8; uint8_t x_9; x_7 = lean_ctor_get(x_3, 1); x_8 = lean_ctor_get(x_5, 0); -x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1(x_1, x_2, x_7); +x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1(x_1, x_2, x_7); switch (lean_obj_tag(x_8)) { case 3: { @@ -6340,7 +7801,7 @@ return x_9; } } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2(uint8_t x_1, lean_object* x_2) { +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2(uint8_t x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -6363,7 +7824,7 @@ else lean_object* x_6; lean_object* x_7; uint8_t x_8; x_6 = lean_ctor_get(x_2, 1); x_7 = lean_ctor_get(x_4, 0); -x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2(x_1, x_6); +x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2(x_1, x_6); switch (lean_obj_tag(x_7)) { case 3: { @@ -6392,11 +7853,11 @@ return x_8; } } } -uint8_t l___private_Lean_Meta_Match_Match_13__isConstructorTransition(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition(lean_object* x_1) { _start: { uint8_t x_2; -x_2 = l___private_Lean_Meta_Match_Match_7__hasCtorPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasCtorPattern(x_1); if (x_2 == 0) { lean_object* x_3; uint8_t x_4; @@ -6412,7 +7873,7 @@ else { uint8_t x_6; uint8_t x_7; x_6 = 1; -x_7 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1(x_4, x_6, x_3); +x_7 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1(x_4, x_6, x_3); return x_7; } } @@ -6421,12 +7882,12 @@ else lean_object* x_8; uint8_t x_9; uint8_t x_10; x_8 = lean_ctor_get(x_1, 2); x_9 = 1; -x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2(x_9, x_8); +x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2(x_9, x_8); return x_10; } } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; uint8_t x_6; lean_object* x_7; @@ -6434,35 +7895,101 @@ x_4 = lean_unbox(x_1); lean_dec(x_1); x_5 = lean_unbox(x_2); lean_dec(x_2); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__1(x_4, x_5, x_3); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__1(x_4, x_5, x_3); lean_dec(x_3); x_7 = lean_box(x_6); return x_7; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; lean_object* x_5; x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_13__isConstructorTransition___spec__2(x_3, x_2); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___spec__2(x_3, x_2); lean_dec(x_2); x_5 = lean_box(x_4); return x_5; } } -lean_object* l___private_Lean_Meta_Match_Match_13__isConstructorTransition___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_13__isConstructorTransition(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 3: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +x_12 = lean_apply_2(x_2, x_11, x_10); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_4, x_1); +return x_13; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition_match__1___rarg), 4, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -6485,7 +8012,7 @@ else lean_object* x_7; lean_object* x_8; uint8_t x_9; x_7 = lean_ctor_get(x_3, 1); x_8 = lean_ctor_get(x_5, 0); -x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1(x_1, x_2, x_7); +x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1(x_1, x_2, x_7); switch (lean_obj_tag(x_8)) { case 1: { @@ -6524,11 +8051,11 @@ return x_12; } } } -uint8_t l___private_Lean_Meta_Match_Match_14__isValueTransition(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition(lean_object* x_1) { _start: { uint8_t x_2; -x_2 = l___private_Lean_Meta_Match_Match_10__hasVarPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern(x_1); if (x_2 == 0) { uint8_t x_3; @@ -6538,7 +8065,7 @@ return x_3; else { uint8_t x_4; -x_4 = l___private_Lean_Meta_Match_Match_8__hasValPattern(x_1); +x_4 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasValPattern(x_1); if (x_4 == 0) { uint8_t x_5; @@ -6550,13 +8077,13 @@ else lean_object* x_6; uint8_t x_7; uint8_t x_8; x_6 = lean_ctor_get(x_1, 2); x_7 = 1; -x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1(x_4, x_7, x_6); +x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1(x_4, x_7, x_6); return x_8; } } } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; uint8_t x_6; lean_object* x_7; @@ -6564,23 +8091,91 @@ x_4 = lean_unbox(x_1); lean_dec(x_1); x_5 = lean_unbox(x_2); lean_dec(x_2); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_14__isValueTransition___spec__1(x_4, x_5, x_3); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___spec__1(x_4, x_5, x_3); lean_dec(x_3); x_7 = lean_box(x_6); return x_7; } } -lean_object* l___private_Lean_Meta_Match_Match_14__isValueTransition___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_14__isValueTransition(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 4: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +lean_dec(x_6); +x_13 = lean_apply_3(x_2, x_11, x_12, x_10); +return x_13; +} +default: +{ +lean_object* x_14; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_14 = lean_apply_1(x_4, x_1); +return x_14; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition_match__1___rarg), 4, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -6603,7 +8198,7 @@ else lean_object* x_7; lean_object* x_8; uint8_t x_9; x_7 = lean_ctor_get(x_3, 1); x_8 = lean_ctor_get(x_5, 0); -x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1(x_1, x_2, x_7); +x_9 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1(x_1, x_2, x_7); switch (lean_obj_tag(x_8)) { case 1: { @@ -6642,11 +8237,11 @@ return x_12; } } } -uint8_t l___private_Lean_Meta_Match_Match_15__isArrayLitTransition(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition(lean_object* x_1) { _start: { uint8_t x_2; -x_2 = l___private_Lean_Meta_Match_Match_11__hasArrayLitPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasArrayLitPattern(x_1); if (x_2 == 0) { uint8_t x_3; @@ -6656,7 +8251,7 @@ return x_3; else { uint8_t x_4; -x_4 = l___private_Lean_Meta_Match_Match_10__hasVarPattern(x_1); +x_4 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasVarPattern(x_1); if (x_4 == 0) { uint8_t x_5; @@ -6668,13 +8263,13 @@ else lean_object* x_6; uint8_t x_7; uint8_t x_8; x_6 = lean_ctor_get(x_1, 2); x_7 = 1; -x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1(x_4, x_7, x_6); +x_8 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1(x_4, x_7, x_6); return x_8; } } } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; uint8_t x_6; lean_object* x_7; @@ -6682,23 +8277,95 @@ x_4 = lean_unbox(x_1); lean_dec(x_1); x_5 = lean_unbox(x_2); lean_dec(x_2); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_15__isArrayLitTransition___spec__1(x_4, x_5, x_3); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___spec__1(x_4, x_5, x_3); lean_dec(x_3); x_7 = lean_box(x_6); return x_7; } } -lean_object* l___private_Lean_Meta_Match_Match_15__isArrayLitTransition___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_15__isArrayLitTransition(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 0: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 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_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +x_13 = lean_ctor_get(x_6, 2); +lean_inc(x_13); +x_14 = lean_ctor_get(x_6, 3); +lean_inc(x_14); +lean_dec(x_6); +x_15 = lean_apply_5(x_2, x_11, x_12, x_13, x_14, x_10); +return x_15; +} +default: +{ +lean_object* x_16; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_16 = lean_apply_1(x_4, x_1); +return x_16; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition_match__1___rarg), 4, 0); +return x_2; +} +} +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -6710,7 +8377,7 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1(x_1, x_2, x_5); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1(x_1, x_2, x_5); x_7 = lean_ctor_get(x_4, 4); if (lean_obj_tag(x_7) == 0) { @@ -6760,11 +8427,11 @@ return x_12; } } } -uint8_t l___private_Lean_Meta_Match_Match_16__isNatValueTransition(lean_object* x_1) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition(lean_object* x_1) { _start: { uint8_t x_2; -x_2 = l___private_Lean_Meta_Match_Match_9__hasNatValPattern(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasNatValPattern(x_1); if (x_2 == 0) { uint8_t x_3; @@ -6774,7 +8441,7 @@ return x_3; else { uint8_t x_4; -x_4 = l___private_Lean_Meta_Match_Match_5__isNextVar(x_1); +x_4 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(x_1); if (x_4 == 0) { return x_2; @@ -6784,13 +8451,13 @@ else lean_object* x_5; uint8_t x_6; uint8_t x_7; x_5 = lean_ctor_get(x_1, 2); x_6 = 0; -x_7 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1(x_6, x_6, x_5); +x_7 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1(x_6, x_6, x_5); return x_7; } } } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; uint8_t x_6; lean_object* x_7; @@ -6798,23 +8465,132 @@ x_4 = lean_unbox(x_1); lean_dec(x_1); x_5 = lean_unbox(x_2); lean_dec(x_2); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_16__isNatValueTransition___spec__1(x_4, x_5, x_3); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___spec__1(x_4, x_5, x_3); lean_dec(x_3); x_7 = lean_box(x_6); return x_7; } } -lean_object* l___private_Lean_Meta_Match_Match_16__isNatValueTransition___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_16__isNatValueTransition(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 0) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible_match__2___rarg), 3, 0); +return x_2; +} +} +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("Lean.Meta.Match.Match"); +return x_1; +} +} +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processSkipInaccessible"); +return x_1; +} +} +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2; +x_3 = lean_unsigned_to_nat(359u); +x_4 = lean_unsigned_to_nat(17u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -6841,304 +8617,324 @@ x_8 = lean_ctor_get(x_4, 1); x_9 = lean_ctor_get(x_4, 2); x_10 = lean_ctor_get(x_4, 3); x_11 = lean_ctor_get(x_4, 4); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(x_6); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(x_6); if (lean_obj_tag(x_11) == 0) { -lean_object* x_13; lean_object* x_14; +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_free_object(x_4); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -x_13 = l_Lean_Meta_Match_Alt_Inhabited; -x_14 = l_unreachable_x21___rarg(x_13); +x_13 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_15 = lean_panic_fn(x_13, x_14); lean_ctor_set(x_1, 1, x_12); -lean_ctor_set(x_1, 0, x_14); +lean_ctor_set(x_1, 0, x_15); return x_1; } else { -lean_object* x_15; +lean_object* x_16; lean_free_object(x_1); -x_15 = lean_ctor_get(x_11, 0); -lean_inc(x_15); -if (lean_obj_tag(x_15) == 0) +x_16 = lean_ctor_get(x_11, 0); +lean_inc(x_16); +if (lean_obj_tag(x_16) == 0) { -uint8_t x_16; -lean_dec(x_15); -x_16 = !lean_is_exclusive(x_11); -if (x_16 == 0) +uint8_t x_17; +lean_dec(x_16); +x_17 = !lean_is_exclusive(x_11); +if (x_17 == 0) { -lean_object* x_17; lean_object* x_18; -x_17 = lean_ctor_get(x_11, 1); -x_18 = lean_ctor_get(x_11, 0); -lean_dec(x_18); -lean_ctor_set(x_4, 4, x_17); +lean_object* x_18; lean_object* x_19; +x_18 = lean_ctor_get(x_11, 1); +x_19 = lean_ctor_get(x_11, 0); +lean_dec(x_19); +lean_ctor_set(x_4, 4, x_18); lean_ctor_set(x_11, 1, x_12); lean_ctor_set(x_11, 0, x_4); return x_11; } else { -lean_object* x_19; lean_object* x_20; -x_19 = lean_ctor_get(x_11, 1); -lean_inc(x_19); +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_11, 1); +lean_inc(x_20); lean_dec(x_11); -lean_ctor_set(x_4, 4, x_19); -x_20 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_20, 0, x_4); -lean_ctor_set(x_20, 1, x_12); -return x_20; +lean_ctor_set(x_4, 4, x_20); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_4); +lean_ctor_set(x_21, 1, x_12); +return x_21; } } else { -uint8_t x_21; -lean_dec(x_15); +uint8_t x_22; +lean_dec(x_16); lean_free_object(x_4); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -x_21 = !lean_is_exclusive(x_11); -if (x_21 == 0) +x_22 = !lean_is_exclusive(x_11); +if (x_22 == 0) { -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_22 = lean_ctor_get(x_11, 1); -lean_dec(x_22); -x_23 = lean_ctor_get(x_11, 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_11, 1); lean_dec(x_23); -x_24 = l_Lean_Meta_Match_Alt_Inhabited; -x_25 = l_unreachable_x21___rarg(x_24); +x_24 = lean_ctor_get(x_11, 0); +lean_dec(x_24); +x_25 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_26 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_27 = lean_panic_fn(x_25, x_26); lean_ctor_set(x_11, 1, x_12); -lean_ctor_set(x_11, 0, x_25); +lean_ctor_set(x_11, 0, x_27); return x_11; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; +lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_dec(x_11); -x_26 = l_Lean_Meta_Match_Alt_Inhabited; -x_27 = l_unreachable_x21___rarg(x_26); -x_28 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_12); -return x_28; +x_28 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_29 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_30 = lean_panic_fn(x_28, x_29); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_30); +lean_ctor_set(x_31, 1, x_12); +return x_31; } } } } 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_1, 1); -x_30 = lean_ctor_get(x_4, 0); -x_31 = lean_ctor_get(x_4, 1); -x_32 = lean_ctor_get(x_4, 2); -x_33 = lean_ctor_get(x_4, 3); -x_34 = lean_ctor_get(x_4, 4); +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_32 = lean_ctor_get(x_1, 1); +x_33 = lean_ctor_get(x_4, 0); +x_34 = lean_ctor_get(x_4, 1); +x_35 = lean_ctor_get(x_4, 2); +x_36 = lean_ctor_get(x_4, 3); +x_37 = lean_ctor_get(x_4, 4); +lean_inc(x_37); +lean_inc(x_36); +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_4); -x_35 = l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(x_29); -if (lean_obj_tag(x_34) == 0) +x_38 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(x_32); +if (lean_obj_tag(x_37) == 0) { -lean_object* x_36; lean_object* x_37; +lean_object* x_39; lean_object* x_40; lean_object* x_41; +lean_dec(x_36); +lean_dec(x_35); +lean_dec(x_34); lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); -x_36 = l_Lean_Meta_Match_Alt_Inhabited; -x_37 = l_unreachable_x21___rarg(x_36); -lean_ctor_set(x_1, 1, x_35); -lean_ctor_set(x_1, 0, x_37); +x_39 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_41 = lean_panic_fn(x_39, x_40); +lean_ctor_set(x_1, 1, x_38); +lean_ctor_set(x_1, 0, x_41); return x_1; } else { -lean_object* x_38; +lean_object* x_42; lean_free_object(x_1); -x_38 = lean_ctor_get(x_34, 0); -lean_inc(x_38); -if (lean_obj_tag(x_38) == 0) -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -lean_dec(x_38); -x_39 = lean_ctor_get(x_34, 1); -lean_inc(x_39); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_40 = x_34; -} else { - lean_dec_ref(x_34); - x_40 = lean_box(0); -} -x_41 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_41, 0, x_30); -lean_ctor_set(x_41, 1, x_31); -lean_ctor_set(x_41, 2, x_32); -lean_ctor_set(x_41, 3, x_33); -lean_ctor_set(x_41, 4, x_39); -if (lean_is_scalar(x_40)) { - x_42 = lean_alloc_ctor(1, 2, 0); -} else { - x_42 = x_40; -} -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_35); -return x_42; -} -else +x_42 = lean_ctor_get(x_37, 0); +lean_inc(x_42); +if (lean_obj_tag(x_42) == 0) { lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; -lean_dec(x_38); -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_43 = x_34; +lean_dec(x_42); +x_43 = lean_ctor_get(x_37, 1); +lean_inc(x_43); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + x_44 = x_37; } else { - lean_dec_ref(x_34); - x_43 = lean_box(0); + lean_dec_ref(x_37); + x_44 = lean_box(0); } -x_44 = l_Lean_Meta_Match_Alt_Inhabited; -x_45 = l_unreachable_x21___rarg(x_44); -if (lean_is_scalar(x_43)) { +x_45 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_45, 0, x_33); +lean_ctor_set(x_45, 1, x_34); +lean_ctor_set(x_45, 2, x_35); +lean_ctor_set(x_45, 3, x_36); +lean_ctor_set(x_45, 4, x_43); +if (lean_is_scalar(x_44)) { x_46 = lean_alloc_ctor(1, 2, 0); } else { - x_46 = x_43; + x_46 = x_44; } lean_ctor_set(x_46, 0, x_45); -lean_ctor_set(x_46, 1, x_35); +lean_ctor_set(x_46, 1, x_38); 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_dec(x_42); +lean_dec(x_36); +lean_dec(x_35); +lean_dec(x_34); +lean_dec(x_33); +if (lean_is_exclusive(x_37)) { + lean_ctor_release(x_37, 0); + lean_ctor_release(x_37, 1); + x_47 = x_37; +} else { + lean_dec_ref(x_37); + x_47 = lean_box(0); +} +x_48 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_49 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_50 = lean_panic_fn(x_48, x_49); +if (lean_is_scalar(x_47)) { + x_51 = lean_alloc_ctor(1, 2, 0); +} else { + x_51 = x_47; +} +lean_ctor_set(x_51, 0, x_50); +lean_ctor_set(x_51, 1, x_38); +return x_51; +} } } } 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; -x_47 = lean_ctor_get(x_1, 0); -x_48 = lean_ctor_get(x_1, 1); -lean_inc(x_48); -lean_inc(x_47); -lean_dec(x_1); -x_49 = lean_ctor_get(x_47, 0); -lean_inc(x_49); -x_50 = lean_ctor_get(x_47, 1); -lean_inc(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_ctor_get(x_47, 4); +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_1, 0); +x_53 = lean_ctor_get(x_1, 1); lean_inc(x_53); -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); - lean_ctor_release(x_47, 4); - x_54 = x_47; +lean_inc(x_52); +lean_dec(x_1); +x_54 = lean_ctor_get(x_52, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_52, 1); +lean_inc(x_55); +x_56 = lean_ctor_get(x_52, 2); +lean_inc(x_56); +x_57 = lean_ctor_get(x_52, 3); +lean_inc(x_57); +x_58 = lean_ctor_get(x_52, 4); +lean_inc(x_58); +if (lean_is_exclusive(x_52)) { + lean_ctor_release(x_52, 0); + lean_ctor_release(x_52, 1); + lean_ctor_release(x_52, 2); + lean_ctor_release(x_52, 3); + lean_ctor_release(x_52, 4); + x_59 = x_52; } else { - lean_dec_ref(x_47); - x_54 = lean_box(0); + lean_dec_ref(x_52); + x_59 = lean_box(0); } -x_55 = l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(x_48); -if (lean_obj_tag(x_53) == 0) +x_60 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(x_53); +if (lean_obj_tag(x_58) == 0) { -lean_object* x_56; lean_object* x_57; lean_object* x_58; +lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; +lean_dec(x_59); +lean_dec(x_57); +lean_dec(x_56); +lean_dec(x_55); lean_dec(x_54); -lean_dec(x_52); -lean_dec(x_51); -lean_dec(x_50); -lean_dec(x_49); -x_56 = l_Lean_Meta_Match_Alt_Inhabited; -x_57 = l_unreachable_x21___rarg(x_56); -x_58 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_58, 0, x_57); -lean_ctor_set(x_58, 1, x_55); -return x_58; +x_61 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_62 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_63 = lean_panic_fn(x_61, x_62); +x_64 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_60); +return x_64; } else { -lean_object* x_59; -x_59 = lean_ctor_get(x_53, 0); -lean_inc(x_59); -if (lean_obj_tag(x_59) == 0) +lean_object* x_65; +x_65 = lean_ctor_get(x_58, 0); +lean_inc(x_65); +if (lean_obj_tag(x_65) == 0) { -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -lean_dec(x_59); -x_60 = lean_ctor_get(x_53, 1); -lean_inc(x_60); -if (lean_is_exclusive(x_53)) { - lean_ctor_release(x_53, 0); - lean_ctor_release(x_53, 1); - x_61 = x_53; +lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; +lean_dec(x_65); +x_66 = lean_ctor_get(x_58, 1); +lean_inc(x_66); +if (lean_is_exclusive(x_58)) { + lean_ctor_release(x_58, 0); + lean_ctor_release(x_58, 1); + x_67 = x_58; } else { - lean_dec_ref(x_53); - x_61 = lean_box(0); + lean_dec_ref(x_58); + x_67 = lean_box(0); } -if (lean_is_scalar(x_54)) { - x_62 = lean_alloc_ctor(0, 5, 0); +if (lean_is_scalar(x_59)) { + x_68 = lean_alloc_ctor(0, 5, 0); } else { - x_62 = x_54; + x_68 = x_59; } -lean_ctor_set(x_62, 0, x_49); -lean_ctor_set(x_62, 1, x_50); -lean_ctor_set(x_62, 2, x_51); -lean_ctor_set(x_62, 3, x_52); -lean_ctor_set(x_62, 4, x_60); -if (lean_is_scalar(x_61)) { - x_63 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_68, 0, x_54); +lean_ctor_set(x_68, 1, x_55); +lean_ctor_set(x_68, 2, x_56); +lean_ctor_set(x_68, 3, x_57); +lean_ctor_set(x_68, 4, x_66); +if (lean_is_scalar(x_67)) { + x_69 = lean_alloc_ctor(1, 2, 0); } else { - x_63 = x_61; + x_69 = x_67; } -lean_ctor_set(x_63, 0, x_62); -lean_ctor_set(x_63, 1, x_55); -return x_63; +lean_ctor_set(x_69, 0, x_68); +lean_ctor_set(x_69, 1, x_60); +return x_69; } else { -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; +lean_dec(x_65); lean_dec(x_59); +lean_dec(x_57); +lean_dec(x_56); +lean_dec(x_55); lean_dec(x_54); -lean_dec(x_52); -lean_dec(x_51); -lean_dec(x_50); -lean_dec(x_49); -if (lean_is_exclusive(x_53)) { - lean_ctor_release(x_53, 0); - lean_ctor_release(x_53, 1); - x_64 = x_53; +if (lean_is_exclusive(x_58)) { + lean_ctor_release(x_58, 0); + lean_ctor_release(x_58, 1); + x_70 = x_58; } else { - lean_dec_ref(x_53); - x_64 = lean_box(0); + lean_dec_ref(x_58); + x_70 = lean_box(0); } -x_65 = l_Lean_Meta_Match_Alt_Inhabited; -x_66 = l_unreachable_x21___rarg(x_65); -if (lean_is_scalar(x_64)) { - x_67 = lean_alloc_ctor(1, 2, 0); +x_71 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_72 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3; +x_73 = lean_panic_fn(x_71, x_72); +if (lean_is_scalar(x_70)) { + x_74 = lean_alloc_ctor(1, 2, 0); } else { - x_67 = x_64; + x_74 = x_70; } -lean_ctor_set(x_67, 0, x_66); -lean_ctor_set(x_67, 1, x_55); -return x_67; +lean_ctor_set(x_74, 0, x_73); +lean_ctor_set(x_74, 1, x_60); +return x_74; } } } } } } -lean_object* l___private_Lean_Meta_Match_Match_17__processSkipInaccessible(lean_object* x_1) { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2; +x_3 = lean_unsigned_to_nat(355u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible(lean_object* x_1) { _start: { lean_object* x_2; @@ -7146,55 +8942,89 @@ x_2 = lean_ctor_get(x_1, 1); lean_inc(x_2); if (lean_obj_tag(x_2) == 0) { -lean_object* x_3; lean_object* x_4; +lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_dec(x_1); -x_3 = l_Lean_Meta_Match_Problem_Inhabited; -x_4 = l_unreachable_x21___rarg(x_3); -return x_4; +x_3 = l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3; +x_4 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1; +x_5 = lean_panic_fn(x_3, x_4); +return x_5; } else { -uint8_t x_5; -x_5 = !lean_is_exclusive(x_1); -if (x_5 == 0) +uint8_t x_6; +x_6 = !lean_is_exclusive(x_1); +if (x_6 == 0) { -lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; -x_6 = lean_ctor_get(x_1, 2); -x_7 = lean_ctor_get(x_1, 1); -lean_dec(x_7); -x_8 = lean_ctor_get(x_2, 1); -lean_inc(x_8); +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; +x_7 = lean_ctor_get(x_1, 2); +x_8 = lean_ctor_get(x_1, 1); +lean_dec(x_8); +x_9 = lean_ctor_get(x_2, 1); +lean_inc(x_9); lean_dec(x_2); -x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(x_6); -lean_ctor_set(x_1, 2, x_9); -lean_ctor_set(x_1, 1, x_8); +x_10 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(x_7); +lean_ctor_set(x_1, 2, x_10); +lean_ctor_set(x_1, 1, x_9); return x_1; } else { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_10 = lean_ctor_get(x_1, 0); -x_11 = lean_ctor_get(x_1, 2); -x_12 = lean_ctor_get(x_1, 3); +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_1, 0); +x_12 = lean_ctor_get(x_1, 2); +x_13 = lean_ctor_get(x_1, 3); +lean_inc(x_13); lean_inc(x_12); lean_inc(x_11); -lean_inc(x_10); lean_dec(x_1); -x_13 = lean_ctor_get(x_2, 1); -lean_inc(x_13); +x_14 = lean_ctor_get(x_2, 1); +lean_inc(x_14); lean_dec(x_2); -x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_17__processSkipInaccessible___spec__1(x_11); -x_15 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_15, 0, x_10); -lean_ctor_set(x_15, 1, x_13); -lean_ctor_set(x_15, 2, x_14); -lean_ctor_set(x_15, 3, x_12); -return x_15; +x_15 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1(x_12); +x_16 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_16, 0, x_11); +lean_ctor_set(x_16, 1, x_14); +lean_ctor_set(x_16, 2, x_15); +lean_ctor_set(x_16, 3, x_13); +return x_16; } } } } -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__4(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__4(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -7245,7 +9075,7 @@ goto _start; } } } -lean_object* l_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; uint8_t x_5; @@ -7264,7 +9094,7 @@ lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_obj 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_List_foldl___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__4(x_3, x_6); +x_9 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__4(x_3, x_6); x_10 = lean_unsigned_to_nat(1u); x_11 = lean_nat_add(x_1, x_10); lean_dec(x_1); @@ -7275,7 +9105,7 @@ goto _start; } } } -lean_object* l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__2(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; @@ -7286,14 +9116,14 @@ 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_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__3(x_8, x_2, x_7); +x_9 = l_Std_HashSetImp_moveEntries___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__3(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_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -7314,7 +9144,7 @@ x_7 = lean_nat_dec_eq(x_5, x_2); if (x_7 == 0) { lean_object* x_8; -x_8 = l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(x_6, x_2, x_3); +x_8 = l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(x_6, x_2, x_3); lean_ctor_set(x_1, 1, x_8); return x_1; } @@ -7337,7 +9167,7 @@ x_11 = lean_nat_dec_eq(x_9, x_2); if (x_11 == 0) { lean_object* x_12; lean_object* x_13; -x_12 = l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(x_10, x_2, x_3); +x_12 = l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(x_10, x_2, x_3); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_9); lean_ctor_set(x_13, 1, x_12); @@ -7356,7 +9186,7 @@ return x_14; } } } -lean_object* l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__1(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; @@ -7387,7 +9217,7 @@ if (x_15 == 0) { lean_object* x_16; lean_free_object(x_1); -x_16 = l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__2(x_12, x_14); +x_16 = l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__2(x_12, x_14); return x_16; } else @@ -7402,7 +9232,7 @@ else lean_object* x_17; lean_object* x_18; lean_dec(x_6); lean_inc(x_2); -x_17 = l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(x_9, x_2, x_2); +x_17 = l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(x_9, x_2, x_2); lean_dec(x_2); x_18 = lean_array_uset(x_5, x_8, x_17); lean_ctor_set(x_1, 1, x_18); @@ -7437,7 +9267,7 @@ lean_dec(x_21); if (x_30 == 0) { lean_object* x_31; -x_31 = l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__2(x_27, x_29); +x_31 = l_Std_HashSetImp_expand___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__2(x_27, x_29); return x_31; } else @@ -7454,7 +9284,7 @@ else lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_dec(x_21); lean_inc(x_2); -x_33 = l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(x_24, x_2, x_2); +x_33 = l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(x_24, x_2, x_2); lean_dec(x_2); x_34 = lean_array_uset(x_20, x_23, x_33); x_35 = lean_alloc_ctor(0, 2, 0); @@ -7465,7 +9295,7 @@ return x_35; } } } -lean_object* l___private_Lean_Meta_Match_Match_18__processLeaf(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf(lean_object* x_1, 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; @@ -7618,7 +9448,7 @@ x_49 = lean_ctor_get(x_46, 0); x_50 = lean_ctor_get(x_41, 1); lean_inc(x_50); lean_dec(x_41); -x_51 = l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__1(x_49, x_50); +x_51 = l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__1(x_49, x_50); lean_ctor_set(x_46, 0, x_51); x_52 = lean_st_ref_set(x_2, x_46, x_47); x_53 = !lean_is_exclusive(x_52); @@ -7655,7 +9485,7 @@ lean_dec(x_46); x_61 = lean_ctor_get(x_41, 1); lean_inc(x_61); lean_dec(x_41); -x_62 = l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__1(x_59, x_61); +x_62 = l_Std_HashSetImp_insert___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__1(x_59, x_61); x_63 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_63, 0, x_62); lean_ctor_set(x_63, 1, x_60); @@ -7707,25 +9537,107 @@ return x_72; } } } -lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_replace___main___at___private_Lean_Meta_Match_Match_18__processLeaf___spec__5(x_1, x_2, x_3); +x_4 = l_List_replace___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___spec__5(x_1, x_2, x_3); lean_dec(x_2); return x_4; } } -lean_object* l___private_Lean_Meta_Match_Match_18__processLeaf___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf___boxed(lean_object* x_1, 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_Meta_Match_Match_18__processLeaf(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean_dec(x_2); return x_8; } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_19__processAsPattern___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 5) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = lean_apply_3(x_2, x_7, x_8, x_6); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_2); +x_10 = lean_apply_1(x_3, x_1); +return x_10; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___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: { if (lean_obj_tag(x_2) == 0) @@ -8008,7 +9920,7 @@ goto block_27; block_27: { lean_object* x_15; -x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_19__processAsPattern___spec__1(x_1, x_11, x_3, x_4, x_5, x_6, x_14); +x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___spec__1(x_1, x_11, x_3, x_4, x_5, x_6, x_14); if (lean_obj_tag(x_15) == 0) { uint8_t x_16; @@ -8076,7 +9988,7 @@ return x_26; } } } -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___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_object* x_11; @@ -8091,7 +10003,28 @@ lean_ctor_set(x_11, 1, x_9); return x_11; } } -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processAsPattern"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1; +x_3 = lean_unsigned_to_nat(374u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern(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; @@ -8099,44 +10032,45 @@ x_7 = lean_ctor_get(x_1, 1); lean_inc(x_7); if (lean_obj_tag(x_7) == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_dec(x_1); x_8 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_9 = l_unreachable_x21___rarg(x_8); -x_10 = lean_apply_5(x_9, x_2, x_3, x_4, x_5, x_6); -return x_10; +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__2; +x_10 = lean_panic_fn(x_8, x_9); +x_11 = lean_apply_5(x_10, x_2, x_3, x_4, x_5, x_6); +return x_11; } 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; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 2); +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_12 = lean_ctor_get(x_1, 0); lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 3); +x_13 = lean_ctor_get(x_1, 2); lean_inc(x_13); -x_14 = lean_ctor_get(x_7, 0); +x_14 = lean_ctor_get(x_1, 3); lean_inc(x_14); -x_15 = lean_alloc_closure((void*)(l_List_mapM___main___at___private_Lean_Meta_Match_Match_19__processAsPattern___spec__1), 7, 2); -lean_closure_set(x_15, 0, x_14); -lean_closure_set(x_15, 1, x_12); -x_16 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1___boxed), 9, 3); -lean_closure_set(x_16, 0, x_11); -lean_closure_set(x_16, 1, x_7); -lean_closure_set(x_16, 2, x_13); -x_17 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_17, 0, x_15); -lean_closure_set(x_17, 1, x_16); -x_18 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_17, x_2, x_3, x_4, x_5, x_6); -return x_18; +x_15 = lean_ctor_get(x_7, 0); +lean_inc(x_15); +x_16 = lean_alloc_closure((void*)(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___spec__1), 7, 2); +lean_closure_set(x_16, 0, x_15); +lean_closure_set(x_16, 1, x_13); +x_17 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___lambda__1___boxed), 9, 3); +lean_closure_set(x_17, 0, x_12); +lean_closure_set(x_17, 1, x_7); +lean_closure_set(x_17, 2, x_14); +x_18 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_18, 0, x_16); +lean_closure_set(x_18, 1, x_17); +x_19 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_18, x_2, x_3, x_4, x_5, x_6); +return x_19; } } } -lean_object* l___private_Lean_Meta_Match_Match_19__processAsPattern___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___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___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___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); @@ -8144,7 +10078,127 @@ lean_dec(x_5); return x_10; } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_20__processVariable___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 0: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_3); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_2, x_8, x_7); +return x_9; +} +case 1: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_2); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +x_12 = lean_apply_2(x_3, x_11, x_10); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_4, x_1); +return x_13; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__1___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable_match__2___rarg), 3, 0); +return x_2; +} +} +static lean_object* _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processVariable"); +return x_1; +} +} +static lean_object* _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1; +x_3 = lean_unsigned_to_nat(388u); +x_4 = lean_unsigned_to_nat(38u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___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: { if (lean_obj_tag(x_2) == 0) @@ -8180,30 +10234,31 @@ x_28 = lean_ctor_get(x_10, 4); lean_inc(x_28); if (lean_obj_tag(x_28) == 0) { -lean_object* x_29; lean_object* x_30; lean_object* x_31; +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_dec(x_10); x_29 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_30 = l_unreachable_x21___rarg(x_29); +x_30 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2; +x_31 = lean_panic_fn(x_29, x_30); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_31 = lean_apply_5(x_30, x_3, x_4, x_5, x_6, x_7); -if (lean_obj_tag(x_31) == 0) +x_32 = lean_apply_5(x_31, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_32) == 0) { -lean_object* x_32; lean_object* x_33; -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_31, 1); +lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_32, 0); lean_inc(x_33); -lean_dec(x_31); -x_13 = x_32; -x_14 = x_33; +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_13 = x_33; +x_14 = x_34; goto block_27; } else { -uint8_t x_34; +uint8_t x_35; lean_dec(x_12); lean_dec(x_11); lean_dec(x_6); @@ -8211,113 +10266,113 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_34 = !lean_is_exclusive(x_31); -if (x_34 == 0) +x_35 = !lean_is_exclusive(x_32); +if (x_35 == 0) { -return x_31; +return x_32; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_31, 0); -x_36 = lean_ctor_get(x_31, 1); +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_32, 0); +x_37 = lean_ctor_get(x_32, 1); +lean_inc(x_37); lean_inc(x_36); -lean_inc(x_35); -lean_dec(x_31); -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; +lean_dec(x_32); +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_38; -x_38 = lean_ctor_get(x_28, 0); -lean_inc(x_38); -switch (lean_obj_tag(x_38)) { +lean_object* x_39; +x_39 = lean_ctor_get(x_28, 0); +lean_inc(x_39); +switch (lean_obj_tag(x_39)) { case 0: { -uint8_t x_39; -lean_dec(x_38); -x_39 = !lean_is_exclusive(x_10); -if (x_39 == 0) +uint8_t x_40; +lean_dec(x_39); +x_40 = !lean_is_exclusive(x_10); +if (x_40 == 0) { -lean_object* x_40; lean_object* x_41; -x_40 = lean_ctor_get(x_10, 4); -lean_dec(x_40); -x_41 = lean_ctor_get(x_28, 1); -lean_inc(x_41); +lean_object* x_41; lean_object* x_42; +x_41 = lean_ctor_get(x_10, 4); +lean_dec(x_41); +x_42 = lean_ctor_get(x_28, 1); +lean_inc(x_42); lean_dec(x_28); -lean_ctor_set(x_10, 4, x_41); +lean_ctor_set(x_10, 4, x_42); x_13 = x_10; x_14 = x_7; goto block_27; } 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; -x_42 = lean_ctor_get(x_10, 0); -x_43 = lean_ctor_get(x_10, 1); -x_44 = lean_ctor_get(x_10, 2); -x_45 = lean_ctor_get(x_10, 3); +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_43 = lean_ctor_get(x_10, 0); +x_44 = lean_ctor_get(x_10, 1); +x_45 = lean_ctor_get(x_10, 2); +x_46 = lean_ctor_get(x_10, 3); +lean_inc(x_46); lean_inc(x_45); lean_inc(x_44); lean_inc(x_43); -lean_inc(x_42); lean_dec(x_10); -x_46 = lean_ctor_get(x_28, 1); -lean_inc(x_46); +x_47 = lean_ctor_get(x_28, 1); +lean_inc(x_47); lean_dec(x_28); -x_47 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_47, 0, x_42); -lean_ctor_set(x_47, 1, x_43); -lean_ctor_set(x_47, 2, x_44); -lean_ctor_set(x_47, 3, x_45); -lean_ctor_set(x_47, 4, x_46); -x_13 = x_47; +x_48 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_48, 0, x_43); +lean_ctor_set(x_48, 1, x_44); +lean_ctor_set(x_48, 2, x_45); +lean_ctor_set(x_48, 3, x_46); +lean_ctor_set(x_48, 4, x_47); +x_13 = x_48; x_14 = x_7; goto block_27; } } case 1: { -uint8_t x_48; -x_48 = !lean_is_exclusive(x_10); -if (x_48 == 0) +uint8_t x_49; +x_49 = !lean_is_exclusive(x_10); +if (x_49 == 0) { -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_49 = lean_ctor_get(x_10, 4); -lean_dec(x_49); -x_50 = lean_ctor_get(x_28, 1); -lean_inc(x_50); -lean_dec(x_28); -x_51 = lean_ctor_get(x_38, 0); +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; +x_50 = lean_ctor_get(x_10, 4); +lean_dec(x_50); +x_51 = lean_ctor_get(x_28, 1); lean_inc(x_51); -lean_dec(x_38); -lean_ctor_set(x_10, 4, x_50); +lean_dec(x_28); +x_52 = lean_ctor_get(x_39, 0); +lean_inc(x_52); +lean_dec(x_39); +lean_ctor_set(x_10, 4, x_51); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_52 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId(x_51, x_1, x_10, x_3, x_4, x_5, x_6, x_7); -if (lean_obj_tag(x_52) == 0) +x_53 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId(x_52, x_1, x_10, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_53) == 0) { -lean_object* x_53; lean_object* x_54; -x_53 = lean_ctor_get(x_52, 0); -lean_inc(x_53); -x_54 = lean_ctor_get(x_52, 1); +lean_object* x_54; lean_object* x_55; +x_54 = lean_ctor_get(x_53, 0); lean_inc(x_54); -lean_dec(x_52); -x_13 = x_53; -x_14 = x_54; +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +lean_dec(x_53); +x_13 = x_54; +x_14 = x_55; goto block_27; } else { -uint8_t x_55; +uint8_t x_56; lean_dec(x_12); lean_dec(x_11); lean_dec(x_6); @@ -8325,71 +10380,71 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_55 = !lean_is_exclusive(x_52); -if (x_55 == 0) +x_56 = !lean_is_exclusive(x_53); +if (x_56 == 0) { -return x_52; +return x_53; } 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_object* x_57; lean_object* x_58; lean_object* x_59; +x_57 = lean_ctor_get(x_53, 0); +x_58 = lean_ctor_get(x_53, 1); +lean_inc(x_58); 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; +lean_dec(x_53); +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; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_59 = lean_ctor_get(x_10, 0); -x_60 = lean_ctor_get(x_10, 1); -x_61 = lean_ctor_get(x_10, 2); -x_62 = lean_ctor_get(x_10, 3); +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_60 = lean_ctor_get(x_10, 0); +x_61 = lean_ctor_get(x_10, 1); +x_62 = lean_ctor_get(x_10, 2); +x_63 = lean_ctor_get(x_10, 3); +lean_inc(x_63); lean_inc(x_62); lean_inc(x_61); lean_inc(x_60); -lean_inc(x_59); lean_dec(x_10); -x_63 = lean_ctor_get(x_28, 1); -lean_inc(x_63); -lean_dec(x_28); -x_64 = lean_ctor_get(x_38, 0); +x_64 = lean_ctor_get(x_28, 1); lean_inc(x_64); -lean_dec(x_38); -x_65 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_65, 0, x_59); -lean_ctor_set(x_65, 1, x_60); -lean_ctor_set(x_65, 2, x_61); -lean_ctor_set(x_65, 3, x_62); -lean_ctor_set(x_65, 4, x_63); +lean_dec(x_28); +x_65 = lean_ctor_get(x_39, 0); +lean_inc(x_65); +lean_dec(x_39); +x_66 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_66, 0, x_60); +lean_ctor_set(x_66, 1, x_61); +lean_ctor_set(x_66, 2, x_62); +lean_ctor_set(x_66, 3, x_63); +lean_ctor_set(x_66, 4, x_64); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_66 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId(x_64, x_1, x_65, x_3, x_4, x_5, x_6, x_7); -if (lean_obj_tag(x_66) == 0) +x_67 = l_Lean_Meta_Match_Alt_checkAndReplaceFVarId(x_65, x_1, x_66, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_67) == 0) { -lean_object* x_67; lean_object* x_68; -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; +x_68 = lean_ctor_get(x_67, 0); lean_inc(x_68); -lean_dec(x_66); -x_13 = x_67; -x_14 = x_68; +x_69 = lean_ctor_get(x_67, 1); +lean_inc(x_69); +lean_dec(x_67); +x_13 = x_68; +x_14 = x_69; goto block_27; } else { -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_dec(x_12); lean_dec(x_11); lean_dec(x_6); @@ -8397,57 +10452,58 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_69 = lean_ctor_get(x_66, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_66, 1); +x_70 = lean_ctor_get(x_67, 0); lean_inc(x_70); -if (lean_is_exclusive(x_66)) { - lean_ctor_release(x_66, 0); - lean_ctor_release(x_66, 1); - x_71 = x_66; +x_71 = lean_ctor_get(x_67, 1); +lean_inc(x_71); +if (lean_is_exclusive(x_67)) { + lean_ctor_release(x_67, 0); + lean_ctor_release(x_67, 1); + x_72 = x_67; } else { - lean_dec_ref(x_66); - x_71 = lean_box(0); + lean_dec_ref(x_67); + x_72 = lean_box(0); } -if (lean_is_scalar(x_71)) { - x_72 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_72)) { + x_73 = lean_alloc_ctor(1, 2, 0); } else { - x_72 = x_71; + x_73 = x_72; } -lean_ctor_set(x_72, 0, x_69); -lean_ctor_set(x_72, 1, x_70); -return x_72; +lean_ctor_set(x_73, 0, x_70); +lean_ctor_set(x_73, 1, x_71); +return x_73; } } } default: { -lean_object* x_73; lean_object* x_74; lean_object* x_75; -lean_dec(x_38); +lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; +lean_dec(x_39); lean_dec(x_28); lean_dec(x_10); -x_73 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_74 = l_unreachable_x21___rarg(x_73); +x_74 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_75 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2; +x_76 = lean_panic_fn(x_74, x_75); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_75 = lean_apply_5(x_74, x_3, x_4, x_5, x_6, x_7); -if (lean_obj_tag(x_75) == 0) +x_77 = lean_apply_5(x_76, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_77) == 0) { -lean_object* x_76; lean_object* x_77; -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_13 = x_76; -x_14 = x_77; +lean_object* x_78; lean_object* x_79; +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_13 = x_78; +x_14 = x_79; goto block_27; } else { -uint8_t x_78; +uint8_t x_80; lean_dec(x_12); lean_dec(x_11); lean_dec(x_6); @@ -8455,23 +10511,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_78 = !lean_is_exclusive(x_75); -if (x_78 == 0) +x_80 = !lean_is_exclusive(x_77); +if (x_80 == 0) { -return x_75; +return x_77; } else { -lean_object* x_79; lean_object* x_80; lean_object* x_81; -x_79 = lean_ctor_get(x_75, 0); -x_80 = lean_ctor_get(x_75, 1); -lean_inc(x_80); -lean_inc(x_79); -lean_dec(x_75); -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; +lean_object* x_81; lean_object* x_82; lean_object* x_83; +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 = 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; } } } @@ -8480,7 +10536,7 @@ return x_81; block_27: { lean_object* x_15; -x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_20__processVariable___spec__1(x_1, x_11, x_3, x_4, x_5, x_6, x_14); +x_15 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1(x_1, x_11, x_3, x_4, x_5, x_6, x_14); if (lean_obj_tag(x_15) == 0) { uint8_t x_16; @@ -8548,7 +10604,20 @@ return x_26; } } } -lean_object* l___private_Lean_Meta_Match_Match_20__processVariable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1; +x_3 = lean_unsigned_to_nat(383u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable(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; @@ -8556,63 +10625,61 @@ x_7 = lean_ctor_get(x_1, 1); lean_inc(x_7); if (lean_obj_tag(x_7) == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_dec(x_1); x_8 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_9 = l_unreachable_x21___rarg(x_8); -x_10 = lean_apply_5(x_9, x_2, x_3, x_4, x_5, x_6); -return x_10; +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1; +x_10 = lean_panic_fn(x_8, x_9); +x_11 = lean_apply_5(x_10, x_2, x_3, x_4, x_5, x_6); +return x_11; } 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; lean_object* x_19; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 2); +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_ctor_get(x_1, 0); lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 3); +x_13 = lean_ctor_get(x_1, 2); lean_inc(x_13); -x_14 = lean_ctor_get(x_7, 0); +x_14 = lean_ctor_get(x_1, 3); lean_inc(x_14); -x_15 = lean_ctor_get(x_7, 1); +x_15 = lean_ctor_get(x_7, 0); lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); lean_dec(x_7); -x_16 = lean_alloc_closure((void*)(l_List_mapM___main___at___private_Lean_Meta_Match_Match_20__processVariable___spec__1), 7, 2); -lean_closure_set(x_16, 0, x_14); -lean_closure_set(x_16, 1, x_12); -x_17 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1___boxed), 9, 3); -lean_closure_set(x_17, 0, x_11); -lean_closure_set(x_17, 1, x_15); -lean_closure_set(x_17, 2, x_13); -x_18 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_18, 0, x_16); -lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_18, x_2, x_3, x_4, x_5, x_6); -return x_19; +x_17 = lean_alloc_closure((void*)(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1), 7, 2); +lean_closure_set(x_17, 0, x_15); +lean_closure_set(x_17, 1, x_13); +x_18 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___lambda__1___boxed), 9, 3); +lean_closure_set(x_18, 0, x_12); +lean_closure_set(x_18, 1, x_16); +lean_closure_set(x_18, 2, x_14); +x_19 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_19, 0, x_17); +lean_closure_set(x_19, 1, x_18); +x_20 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_19, x_2, x_3, x_4, x_5, x_6); +return x_20; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("\nhas type"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_throwInductiveTypeExpected___rarg___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___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; @@ -8621,7 +10688,7 @@ lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); lean_inc(x_1); -x_7 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_1, x_2, x_3, 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; 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; @@ -8631,23 +10698,23 @@ x_9 = lean_ctor_get(x_7, 1); lean_inc(x_9); lean_dec(x_7); x_10 = l_Lean_indentExpr(x_1); -x_11 = l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2; +x_11 = l___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_throwInductiveTypeExpected___rarg___closed__2; x_12 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_12, 0, x_11); lean_ctor_set(x_12, 1, x_10); -x_13 = l_Lean_MessageData_ofList___closed__3; +x_13 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2; x_14 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); -x_15 = l_Lean_KernelException_toMessageData___closed__12; +x_15 = l_Lean_indentExpr(x_8); x_16 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_16, 0, x_14); lean_ctor_set(x_16, 1, x_15); -x_17 = l_Lean_indentExpr(x_8); +x_17 = l_Lean_Meta_throwTacticEx___rarg___closed__6; 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_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_18, x_2, x_3, x_4, x_5, x_9); +x_19 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_18, x_2, x_3, x_4, x_5, x_9); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); @@ -8683,15 +10750,15 @@ return x_23; } } } -lean_object* l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg), 6, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg), 6, 0); return x_2; } } -uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { +uint8_t l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(lean_object* x_1, uint8_t x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -8703,7 +10770,7 @@ else lean_object* x_4; lean_object* x_5; uint8_t x_6; lean_object* x_7; uint8_t x_8; x_4 = lean_ctor_get(x_3, 0); x_5 = lean_ctor_get(x_3, 1); -x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_1, x_2, x_5); +x_6 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_1, x_2, x_5); x_7 = l_Lean_LocalDecl_fvarId(x_4); x_8 = lean_name_eq(x_7, x_1); lean_dec(x_7); @@ -8720,45 +10787,53 @@ return x_9; } } } -uint8_t l___private_Lean_Meta_Match_Match_22__inLocalDecls(lean_object* x_1, lean_object* x_2) { +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; uint8_t x_4; x_3 = 0; -x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_2, x_3, x_1); +x_4 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_2, x_3, x_1); return x_4; } } -lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { uint8_t x_4; uint8_t x_5; lean_object* x_6; x_4 = lean_unbox(x_2); lean_dec(x_2); -x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_1, x_4, x_3); +x_5 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_1, x_4, x_3); lean_dec(x_3); lean_dec(x_1); x_6 = lean_box(x_5); return x_6; } } -lean_object* l___private_Lean_Meta_Match_Match_22__inLocalDecls___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l___private_Lean_Meta_Match_Match_22__inLocalDecls(x_1, x_2); +x_3 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls(x_1, x_2); lean_dec(x_2); lean_dec(x_1); x_4 = lean_box(x_3); return x_4; } } +static lean_object* _init_l_Lean_Meta_Match_Unify_State_fvarSubst___default() { +_start: +{ +lean_object* x_1; +x_1 = lean_box(0); +return x_1; +} +} lean_object* l_Lean_Meta_Match_Unify_isAltVar(lean_object* x_1, lean_object* x_2, 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; uint8_t x_10; lean_object* x_11; lean_object* x_12; x_9 = 0; -x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_1, x_9, x_2); +x_10 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_1, x_9, x_2); x_11 = lean_box(x_10); x_12 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_12, 0, x_11); @@ -8781,6 +10856,38 @@ lean_dec(x_1); return x_9; } } +lean_object* l_Lean_Meta_Match_Unify_expandIfVar_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l_Lean_Meta_Match_Unify_expandIfVar_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_expandIfVar_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_Meta_Match_Unify_expandIfVar(lean_object* x_1, lean_object* x_2, 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: { @@ -8838,6 +10945,38 @@ lean_dec(x_2); return x_9; } } +lean_object* l_Lean_Meta_Match_Unify_occurs_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l_Lean_Meta_Match_Unify_occurs_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_occurs_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_Expr_FindImpl_findM_x3f___main___at_Lean_Meta_Match_Unify_occurs___spec__1(lean_object* x_1, size_t x_2, lean_object* x_3, lean_object* x_4) { _start: { @@ -9370,20 +11509,7 @@ x_4 = lean_box(x_3); return x_4; } } -lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___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; lean_object* x_11; lean_object* x_12; -x_9 = lean_ctor_get(x_6, 0); -x_10 = l_Lean_checkTraceOption(x_9, x_1); -x_11 = lean_box(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_8); -return x_12; -} -} -lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___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* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___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; 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; @@ -9550,219 +11676,17 @@ return x_58; } } } -lean_object* l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___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* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___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_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, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_11, 3); -lean_inc(x_12); -lean_dec(x_11); -x_13 = lean_ctor_get_uint8(x_12, sizeof(void*)*1); -lean_dec(x_12); -if (x_13 == 0) -{ -uint8_t x_14; -lean_dec(x_2); -lean_dec(x_1); -x_14 = !lean_is_exclusive(x_10); -if (x_14 == 0) -{ -lean_object* x_15; lean_object* x_16; -x_15 = lean_ctor_get(x_10, 0); -lean_dec(x_15); -x_16 = lean_box(0); -lean_ctor_set(x_10, 0, x_16); -return x_10; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_10, 1); -lean_inc(x_17); -lean_dec(x_10); -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; uint8_t x_23; -x_20 = lean_ctor_get(x_10, 1); -lean_inc(x_20); -lean_dec(x_10); -lean_inc(x_1); -x_21 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_20); -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_dec(x_2); -lean_dec(x_1); -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 -{ -lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_30 = lean_ctor_get(x_21, 1); -lean_inc(x_30); -lean_dec(x_21); -x_31 = lean_box(0); -x_32 = lean_apply_1(x_2, x_31); -x_33 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__3(x_1, x_32, x_3, x_4, x_5, x_6, x_7, x_8, x_30); -return x_33; -} -} -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("assign failed variable is not local, "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___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; -x_4 = l_Lean_mkFVar(x_1); -x_5 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_5, 0, x_4); -x_6 = l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3; -x_7 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_7, 0, x_6); -lean_ctor_set(x_7, 1, x_5); -x_8 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___lambda__1___closed__1; -x_9 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_9, 0, x_7); -lean_ctor_set(x_9, 1, x_8); -x_10 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_10, 0, x_2); -x_11 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___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; lean_object* x_8; lean_object* x_9; -x_4 = l_Lean_mkFVar(x_1); -x_5 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_5, 0, x_4); -x_6 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___lambda__1___closed__1; -x_7 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_7, 0, x_5); -lean_ctor_set(x_7, 1, x_6); -x_8 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_8, 0, x_2); -x_9 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_9, 0, x_7); -lean_ctor_set(x_9, 1, x_8); -return x_9; -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("assign occurs check failed, "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3(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; -x_4 = l_Lean_mkFVar(x_1); -x_5 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_5, 0, x_4); -x_6 = l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3; -x_7 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_7, 0, x_6); -lean_ctor_set(x_7, 1, x_5); -x_8 = l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___lambda__1___closed__1; -x_9 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_9, 0, x_7); -lean_ctor_set(x_9, 1, x_8); -x_10 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_10, 0, x_2); -x_11 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_11, 0, x_9); -lean_ctor_set(x_11, 1, x_10); -return x_11; +lean_object* x_9; uint8_t x_10; lean_object* x_11; lean_object* x_12; +x_9 = lean_ctor_get(x_6, 0); +x_10 = l_Lean_checkTraceOption(x_9, x_1); +x_11 = lean_box(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_8); +return x_12; } } static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__1() { @@ -9777,12 +11701,66 @@ static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; x_2 = l_Lean_Meta_Match_Unify_assign___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } +static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("assign failed variable is not local, "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_Unify_assign___closed__3; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_Unify_assign___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_Meta_Match_Unify_assign___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_formatEntry___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("assign occurs check failed, "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_Unify_assign___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_Unify_assign___closed__7; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} lean_object* l_Lean_Meta_Match_Unify_assign(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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: { @@ -9796,117 +11774,393 @@ x_11 = l_Lean_Meta_Match_Unify_isAltVar(x_1, 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; lean_object* x_17; uint8_t x_18; +lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; x_14 = lean_ctor_get(x_11, 1); lean_inc(x_14); -lean_dec(x_11); -x_15 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_assign___lambda__1___boxed), 3, 2); -lean_closure_set(x_15, 0, x_1); -lean_closure_set(x_15, 1, x_2); -x_16 = l_Lean_Meta_Match_Unify_assign___closed__2; -x_17 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_16, x_15, x_3, x_4, x_5, x_6, x_7, x_8, x_14); -x_18 = !lean_is_exclusive(x_17); -if (x_18 == 0) -{ -lean_object* x_19; -x_19 = lean_ctor_get(x_17, 0); -lean_dec(x_19); -lean_ctor_set(x_17, 0, x_12); -return x_17; +if (lean_is_exclusive(x_11)) { + lean_ctor_release(x_11, 0); + lean_ctor_release(x_11, 1); + x_15 = x_11; +} else { + lean_dec_ref(x_11); + x_15 = lean_box(0); } -else +x_40 = lean_st_ref_get(x_8, x_14); +x_41 = lean_ctor_get(x_40, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_41, 3); +lean_inc(x_42); +lean_dec(x_41); +x_43 = lean_ctor_get_uint8(x_42, sizeof(void*)*1); +lean_dec(x_42); +if (x_43 == 0) { -lean_object* x_20; lean_object* x_21; -x_20 = lean_ctor_get(x_17, 1); -lean_inc(x_20); -lean_dec(x_17); -x_21 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_21, 0, x_12); -lean_ctor_set(x_21, 1, x_20); -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; lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; -x_22 = lean_ctor_get(x_11, 1); -lean_inc(x_22); -lean_dec(x_11); -lean_inc(x_2); -lean_inc(x_1); -x_23 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_assign___lambda__2___boxed), 3, 2); -lean_closure_set(x_23, 0, x_1); -lean_closure_set(x_23, 1, x_2); -x_24 = l_Lean_Meta_Match_Unify_assign___closed__2; -x_25 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_24, x_23, x_3, x_4, x_5, x_6, x_7, x_8, x_22); -x_26 = lean_ctor_get(x_25, 1); -lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_st_ref_take(x_4, x_26); -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 = l_Lean_Meta_FVarSubst_insert(x_28, x_1, x_2); -x_31 = lean_st_ref_set(x_4, x_30, x_29); -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_12); -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_12); -lean_ctor_set(x_35, 1, x_34); -return x_35; -} -} -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; -x_36 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_assign___lambda__3___boxed), 3, 2); -lean_closure_set(x_36, 0, x_1); -lean_closure_set(x_36, 1, x_2); -x_37 = l_Lean_Meta_Match_Unify_assign___closed__2; -x_38 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_37, x_36, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -x_39 = !lean_is_exclusive(x_38); -if (x_39 == 0) -{ -lean_object* x_40; uint8_t x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_38, 0); +lean_object* x_44; uint8_t x_45; +x_44 = lean_ctor_get(x_40, 1); +lean_inc(x_44); lean_dec(x_40); -x_41 = 0; -x_42 = lean_box(x_41); -lean_ctor_set(x_38, 0, x_42); +x_45 = 0; +x_16 = x_45; +x_17 = x_44; +goto block_39; +} +else +{ +lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_46 = lean_ctor_get(x_40, 1); +lean_inc(x_46); +lean_dec(x_40); +x_47 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_48 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_47, x_3, x_4, x_5, x_6, x_7, x_8, x_46); +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_unbox(x_49); +lean_dec(x_49); +x_16 = x_51; +x_17 = x_50; +goto block_39; +} +block_39: +{ +if (x_16 == 0) +{ +uint8_t x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_2); +lean_dec(x_1); +x_18 = 0; +x_19 = lean_box(x_18); +if (lean_is_scalar(x_15)) { + x_20 = lean_alloc_ctor(0, 2, 0); +} else { + x_20 = x_15; +} +lean_ctor_set(x_20, 0, x_19); +lean_ctor_set(x_20, 1, x_17); +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; lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31; +lean_dec(x_15); +x_21 = l_Lean_mkFVar(x_1); +x_22 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_22, 0, x_21); +x_23 = l_Lean_Meta_Match_Unify_assign___closed__5; +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___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___lambda__1___closed__1; +x_26 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +x_27 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_27, 0, x_2); +x_28 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +x_29 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_30 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(x_29, x_28, x_3, x_4, x_5, x_6, x_7, x_8, x_17); +x_31 = !lean_is_exclusive(x_30); +if (x_31 == 0) +{ +lean_object* x_32; uint8_t x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_30, 0); +lean_dec(x_32); +x_33 = 0; +x_34 = lean_box(x_33); +lean_ctor_set(x_30, 0, x_34); +return x_30; +} +else +{ +lean_object* x_35; uint8_t x_36; lean_object* x_37; lean_object* x_38; +x_35 = lean_ctor_get(x_30, 1); +lean_inc(x_35); +lean_dec(x_30); +x_36 = 0; +x_37 = lean_box(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_43; uint8_t x_44; lean_object* x_45; lean_object* x_46; -x_43 = lean_ctor_get(x_38, 1); -lean_inc(x_43); -lean_dec(x_38); -x_44 = 0; -x_45 = lean_box(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_43); -return x_46; +lean_object* x_52; uint8_t x_53; lean_object* x_54; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; +x_52 = lean_ctor_get(x_11, 1); +lean_inc(x_52); +lean_dec(x_11); +x_94 = lean_st_ref_get(x_8, x_52); +x_95 = lean_ctor_get(x_94, 0); +lean_inc(x_95); +x_96 = lean_ctor_get(x_95, 3); +lean_inc(x_96); +lean_dec(x_95); +x_97 = lean_ctor_get_uint8(x_96, sizeof(void*)*1); +lean_dec(x_96); +if (x_97 == 0) +{ +lean_object* x_98; uint8_t x_99; +x_98 = lean_ctor_get(x_94, 1); +lean_inc(x_98); +lean_dec(x_94); +x_99 = 0; +x_53 = x_99; +x_54 = x_98; +goto block_93; +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; +x_100 = lean_ctor_get(x_94, 1); +lean_inc(x_100); +lean_dec(x_94); +x_101 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_102 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_101, x_3, x_4, x_5, x_6, x_7, x_8, x_100); +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_unbox(x_103); +lean_dec(x_103); +x_53 = x_105; +x_54 = x_104; +goto block_93; +} +block_93: +{ +if (x_53 == 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 = lean_st_ref_take(x_4, x_54); +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_Meta_FVarSubst_insert(x_56, x_1, x_2); +x_59 = lean_st_ref_set(x_4, x_58, x_57); +x_60 = !lean_is_exclusive(x_59); +if (x_60 == 0) +{ +lean_object* x_61; uint8_t x_62; lean_object* x_63; +x_61 = lean_ctor_get(x_59, 0); +lean_dec(x_61); +x_62 = 1; +x_63 = lean_box(x_62); +lean_ctor_set(x_59, 0, x_63); +return x_59; +} +else +{ +lean_object* x_64; uint8_t x_65; lean_object* x_66; lean_object* x_67; +x_64 = lean_ctor_get(x_59, 1); +lean_inc(x_64); +lean_dec(x_59); +x_65 = 1; +x_66 = lean_box(x_65); +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; 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_inc(x_1); +x_68 = l_Lean_mkFVar(x_1); +x_69 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_69, 0, x_68); +x_70 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_71 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_71, 0, x_70); +lean_ctor_set(x_71, 1, x_69); +x_72 = l_Lean_Meta_Match_Unify_assign___closed__6; +x_73 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_73, 0, x_71); +lean_ctor_set(x_73, 1, x_72); +lean_inc(x_2); +x_74 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_74, 0, x_2); +x_75 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); +x_76 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_76, 0, x_75); +lean_ctor_set(x_76, 1, x_70); +x_77 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_78 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(x_77, x_76, x_3, x_4, x_5, x_6, x_7, x_8, x_54); +x_79 = lean_ctor_get(x_78, 1); +lean_inc(x_79); +lean_dec(x_78); +x_80 = lean_st_ref_take(x_4, 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 = l_Lean_Meta_FVarSubst_insert(x_81, x_1, x_2); +x_84 = lean_st_ref_set(x_4, x_83, x_82); +x_85 = !lean_is_exclusive(x_84); +if (x_85 == 0) +{ +lean_object* x_86; uint8_t x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_84, 0); +lean_dec(x_86); +x_87 = 1; +x_88 = lean_box(x_87); +lean_ctor_set(x_84, 0, x_88); +return x_84; +} +else +{ +lean_object* x_89; uint8_t x_90; lean_object* x_91; lean_object* x_92; +x_89 = lean_ctor_get(x_84, 1); +lean_inc(x_89); +lean_dec(x_84); +x_90 = 1; +x_91 = lean_box(x_90); +x_92 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_92, 0, x_91); +lean_ctor_set(x_92, 1, x_89); +return x_92; +} +} +} +} +} +else +{ +uint8_t x_106; lean_object* x_107; lean_object* x_132; lean_object* x_133; lean_object* x_134; uint8_t x_135; +x_132 = lean_st_ref_get(x_8, x_9); +x_133 = lean_ctor_get(x_132, 0); +lean_inc(x_133); +x_134 = lean_ctor_get(x_133, 3); +lean_inc(x_134); +lean_dec(x_133); +x_135 = lean_ctor_get_uint8(x_134, sizeof(void*)*1); +lean_dec(x_134); +if (x_135 == 0) +{ +lean_object* x_136; uint8_t x_137; +x_136 = lean_ctor_get(x_132, 1); +lean_inc(x_136); +lean_dec(x_132); +x_137 = 0; +x_106 = x_137; +x_107 = x_136; +goto block_131; +} +else +{ +lean_object* x_138; lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; uint8_t x_143; +x_138 = lean_ctor_get(x_132, 1); +lean_inc(x_138); +lean_dec(x_132); +x_139 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_140 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_139, x_3, x_4, x_5, x_6, x_7, x_8, x_138); +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_unbox(x_141); +lean_dec(x_141); +x_106 = x_143; +x_107 = x_142; +goto block_131; +} +block_131: +{ +if (x_106 == 0) +{ +uint8_t x_108; lean_object* x_109; lean_object* x_110; +lean_dec(x_2); +lean_dec(x_1); +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; 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; uint8_t x_123; +x_111 = l_Lean_mkFVar(x_1); +x_112 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_112, 0, x_111); +x_113 = l_Lean_Meta_Match_Unify_assign___closed__8; +x_114 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_114, 0, x_113); +lean_ctor_set(x_114, 1, x_112); +x_115 = l_Lean_Meta_Match_Unify_assign___closed__6; +x_116 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_116, 0, x_114); +lean_ctor_set(x_116, 1, x_115); +x_117 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_117, 0, x_2); +x_118 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_118, 0, x_116); +lean_ctor_set(x_118, 1, x_117); +x_119 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_120 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_120, 0, x_118); +lean_ctor_set(x_120, 1, x_119); +x_121 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_122 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(x_121, x_120, x_3, x_4, x_5, x_6, x_7, x_8, x_107); +x_123 = !lean_is_exclusive(x_122); +if (x_123 == 0) +{ +lean_object* x_124; uint8_t x_125; lean_object* x_126; +x_124 = lean_ctor_get(x_122, 0); +lean_dec(x_124); +x_125 = 0; +x_126 = lean_box(x_125); +lean_ctor_set(x_122, 0, x_126); +return x_122; +} +else +{ +lean_object* x_127; uint8_t x_128; lean_object* x_129; lean_object* x_130; +x_127 = lean_ctor_get(x_122, 1); +lean_inc(x_127); +lean_dec(x_122); +x_128 = 0; +x_129 = lean_box(x_128); +x_130 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_130, 0, x_129); +lean_ctor_set(x_130, 1, x_127); +return x_130; +} +} +} +} +} +} +lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___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_10; +x_10 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___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); +return x_10; } } lean_object* l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___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) { @@ -9923,61 +12177,6 @@ lean_dec(x_2); return x_9; } } -lean_object* l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___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: -{ -lean_object* x_10; -x_10 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__3(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_object* l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___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_10; -x_10 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___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); -return x_10; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Unify_assign___lambda__1(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Unify_assign___lambda__2(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -lean_object* l_Lean_Meta_Match_Unify_assign___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Unify_assign___lambda__3(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} lean_object* l_Lean_Meta_Match_Unify_assign___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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: { @@ -9992,7 +12191,227 @@ lean_dec(x_3); return x_10; } } -lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___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* l_Lean_Meta_Match_Unify_unify_match__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: +{ +switch (lean_obj_tag(x_1)) { +case 1: +{ +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_3); +switch (lean_obj_tag(x_2)) { +case 1: +{ +lean_object* x_10; uint64_t x_11; lean_object* x_12; uint64_t x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +lean_dec(x_6); +lean_dec(x_4); +x_10 = lean_ctor_get(x_1, 0); +lean_inc(x_10); +x_11 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_12 = lean_ctor_get(x_2, 0); +lean_inc(x_12); +x_13 = lean_ctor_get_uint64(x_2, sizeof(void*)*1); +lean_dec(x_2); +x_14 = lean_box_uint64(x_11); +x_15 = lean_box_uint64(x_13); +x_16 = lean_apply_4(x_5, x_10, x_14, x_12, x_15); +return x_16; +} +case 10: +{ +lean_object* x_17; lean_object* x_18; uint64_t x_19; lean_object* x_20; lean_object* x_21; +lean_dec(x_6); +lean_dec(x_5); +x_17 = lean_ctor_get(x_2, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_2, 1); +lean_inc(x_18); +x_19 = lean_ctor_get_uint64(x_2, sizeof(void*)*2); +lean_dec(x_2); +x_20 = lean_box_uint64(x_19); +x_21 = lean_apply_4(x_4, x_1, x_17, x_18, x_20); +return x_21; +} +default: +{ +lean_object* x_22; uint64_t x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_5); +lean_dec(x_4); +x_22 = lean_ctor_get(x_1, 0); +lean_inc(x_22); +x_23 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_24 = lean_box_uint64(x_23); +x_25 = lean_apply_3(x_6, x_22, x_24, x_2); +return x_25; +} +} +} +case 5: +{ +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +switch (lean_obj_tag(x_2)) { +case 1: +{ +lean_object* x_26; uint64_t x_27; lean_object* x_28; lean_object* x_29; +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +x_26 = lean_ctor_get(x_2, 0); +lean_inc(x_26); +x_27 = lean_ctor_get_uint64(x_2, sizeof(void*)*1); +lean_dec(x_2); +x_28 = lean_box_uint64(x_27); +x_29 = lean_apply_3(x_7, x_1, x_26, x_28); +return x_29; +} +case 5: +{ +lean_object* x_30; lean_object* x_31; uint64_t x_32; lean_object* x_33; lean_object* x_34; uint64_t x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_4); +x_30 = lean_ctor_get(x_1, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_1, 1); +lean_inc(x_31); +x_32 = lean_ctor_get_uint64(x_1, sizeof(void*)*2); +lean_dec(x_1); +x_33 = lean_ctor_get(x_2, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_2, 1); +lean_inc(x_34); +x_35 = lean_ctor_get_uint64(x_2, sizeof(void*)*2); +lean_dec(x_2); +x_36 = lean_box_uint64(x_32); +x_37 = lean_box_uint64(x_35); +x_38 = lean_apply_6(x_8, x_30, x_31, x_36, x_33, x_34, x_37); +return x_38; +} +case 10: +{ +lean_object* x_39; lean_object* x_40; uint64_t x_41; lean_object* x_42; lean_object* x_43; +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_39 = lean_ctor_get(x_2, 0); +lean_inc(x_39); +x_40 = lean_ctor_get(x_2, 1); +lean_inc(x_40); +x_41 = lean_ctor_get_uint64(x_2, sizeof(void*)*2); +lean_dec(x_2); +x_42 = lean_box_uint64(x_41); +x_43 = lean_apply_4(x_4, x_1, x_39, x_40, x_42); +return x_43; +} +default: +{ +lean_object* x_44; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_4); +x_44 = lean_apply_2(x_9, x_1, x_2); +return x_44; +} +} +} +case 10: +{ +lean_object* x_45; lean_object* x_46; uint64_t x_47; lean_object* x_48; lean_object* x_49; +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_45 = lean_ctor_get(x_1, 0); +lean_inc(x_45); +x_46 = lean_ctor_get(x_1, 1); +lean_inc(x_46); +x_47 = lean_ctor_get_uint64(x_1, sizeof(void*)*2); +lean_dec(x_1); +x_48 = lean_box_uint64(x_47); +x_49 = lean_apply_4(x_3, x_45, x_46, x_48, x_2); +return x_49; +} +default: +{ +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +switch (lean_obj_tag(x_2)) { +case 1: +{ +lean_object* x_50; uint64_t x_51; lean_object* x_52; lean_object* x_53; +lean_dec(x_9); +lean_dec(x_4); +x_50 = lean_ctor_get(x_2, 0); +lean_inc(x_50); +x_51 = lean_ctor_get_uint64(x_2, sizeof(void*)*1); +lean_dec(x_2); +x_52 = lean_box_uint64(x_51); +x_53 = lean_apply_3(x_7, x_1, x_50, x_52); +return x_53; +} +case 10: +{ +lean_object* x_54; lean_object* x_55; uint64_t x_56; lean_object* x_57; lean_object* x_58; +lean_dec(x_9); +lean_dec(x_7); +x_54 = lean_ctor_get(x_2, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_2, 1); +lean_inc(x_55); +x_56 = lean_ctor_get_uint64(x_2, sizeof(void*)*2); +lean_dec(x_2); +x_57 = lean_box_uint64(x_56); +x_58 = lean_apply_4(x_4, x_1, x_54, x_55, x_57); +return x_58; +} +default: +{ +lean_object* x_59; +lean_dec(x_7); +lean_dec(x_4); +x_59 = lean_apply_2(x_9, x_1, x_2); +return x_59; +} +} +} +} +} +} +lean_object* l_Lean_Meta_Match_Unify_unify_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_unify_match__1___rarg), 9, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_Unify_unify_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = lean_apply_2(x_3, x_1, x_2); +return x_4; +} +} +lean_object* l_Lean_Meta_Match_Unify_unify_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_unify_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___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; uint8_t x_11; lean_object* x_12; lean_object* x_238; lean_object* x_239; lean_object* x_240; uint8_t x_241; @@ -10938,7 +13357,7 @@ return x_236; } } } -static lean_object* _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Unify_unify___closed__1() { _start: { lean_object* x_1; @@ -10946,206 +13365,294 @@ x_1 = lean_mk_string("unify failed @"); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_Unify_unify___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1; +x_1 = l_Lean_Meta_Match_Unify_unify___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3() { +static lean_object* _init_l_Lean_Meta_Match_Unify_unify___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2; +x_1 = l_Lean_Meta_Match_Unify_unify___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Lean_Meta_Match_Unify_unify(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_4; 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_alloc_ctor(2, 1, 0); -lean_ctor_set(x_4, 0, x_1); -x_5 = l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3; -x_6 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_4); -x_7 = l_Lean_Meta_isLevelDefEqAux___main___lambda__1___closed__3; -x_8 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_8, 0, x_6); -lean_ctor_set(x_8, 1, x_7); -x_9 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_9, 0, x_2); -x_10 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_10, 0, x_8); -lean_ctor_set(x_10, 1, x_9); -return x_10; -} -} -lean_object* l_Lean_Meta_Match_Unify_unify___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_122; lean_object* x_123; lean_object* x_133; lean_object* x_134; lean_object* x_135; uint8_t x_136; +x_133 = lean_st_ref_get(x_8, x_9); +x_134 = lean_ctor_get(x_133, 0); +lean_inc(x_134); +x_135 = lean_ctor_get(x_134, 3); +lean_inc(x_135); +lean_dec(x_134); +x_136 = lean_ctor_get_uint8(x_135, sizeof(void*)*1); +lean_dec(x_135); +if (x_136 == 0) { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -lean_inc(x_2); -lean_inc(x_1); -x_10 = lean_alloc_closure((void*)(l___private_Lean_Meta_ExprDefEq_43__isDefEqQuick___main___lambda__2___boxed), 3, 2); -lean_closure_set(x_10, 0, x_1); -lean_closure_set(x_10, 1, x_2); -x_11 = l_Lean_Meta_Match_Unify_assign___closed__2; -x_12 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_11, x_10, 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); +lean_object* x_137; uint8_t x_138; +x_137 = lean_ctor_get(x_133, 1); +lean_inc(x_137); +lean_dec(x_133); +x_138 = 0; +x_122 = x_138; +x_123 = x_137; +goto block_132; +} +else +{ +lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; uint8_t x_144; +x_139 = lean_ctor_get(x_133, 1); +lean_inc(x_139); +lean_dec(x_133); +x_140 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_141 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_140, x_3, x_4, x_5, x_6, x_7, x_8, x_139); +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_unbox(x_142); +lean_dec(x_142); +x_122 = x_144; +x_123 = x_143; +goto block_132; +} +block_121: +{ +lean_object* x_11; lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_2); lean_inc(x_1); -x_14 = l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_13); -if (lean_obj_tag(x_14) == 0) +x_11 = l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_10); +if (lean_obj_tag(x_11) == 0) { -lean_object* x_15; uint8_t x_16; -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_unbox(x_15); -if (x_16 == 0) +lean_object* x_12; uint8_t x_13; +x_12 = lean_ctor_get(x_11, 0); +lean_inc(x_12); +x_13 = lean_unbox(x_12); +if (x_13 == 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; uint8_t x_24; -x_17 = lean_ctor_get(x_14, 1); -lean_inc(x_17); -lean_dec(x_14); +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_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; uint8_t x_108; +x_14 = lean_ctor_get(x_11, 1); +lean_inc(x_14); +lean_dec(x_11); lean_inc(x_1); -x_18 = l_Lean_Meta_Match_Unify_expandIfVar(x_1, x_3, x_4, x_5, x_6, x_7, x_8, 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_15 = l_Lean_Meta_Match_Unify_expandIfVar(x_1, x_3, x_4, x_5, x_6, x_7, x_8, 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); +if (lean_is_exclusive(x_15)) { + lean_ctor_release(x_15, 0); + lean_ctor_release(x_15, 1); + x_18 = x_15; +} else { + lean_dec_ref(x_15); + x_18 = lean_box(0); +} lean_inc(x_2); -x_21 = l_Lean_Meta_Match_Unify_expandIfVar(x_2, x_3, x_4, x_5, x_6, x_7, x_8, 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_expr_eqv(x_1, x_19); -if (x_24 == 0) -{ -lean_dec(x_15); -lean_dec(x_2); -lean_dec(x_1); -x_1 = x_19; -x_2 = x_22; -x_9 = x_23; -goto _start; -} -else -{ -uint8_t x_26; -x_26 = lean_expr_eqv(x_2, x_22); -if (x_26 == 0) -{ -lean_dec(x_15); -lean_dec(x_2); -lean_dec(x_1); -x_1 = x_19; -x_2 = x_22; -x_9 = x_23; -goto _start; -} -else -{ -lean_dec(x_22); -lean_dec(x_19); -switch (lean_obj_tag(x_1)) { -case 1: -{ -lean_dec(x_15); -switch (lean_obj_tag(x_2)) { -case 1: -{ -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_2, 0); -lean_inc(x_29); -x_30 = l_Lean_Meta_Match_Unify_assign(x_28, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_23); -x_31 = lean_ctor_get(x_30, 0); -lean_inc(x_31); -x_32 = lean_unbox(x_31); -if (x_32 == 0) -{ -lean_object* x_33; lean_object* x_34; -lean_dec(x_31); -x_33 = lean_ctor_get(x_30, 1); -lean_inc(x_33); -lean_dec(x_30); -x_34 = l_Lean_Meta_Match_Unify_assign(x_29, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_33); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -return x_34; -} -else -{ -uint8_t x_35; -lean_dec(x_29); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_1); -x_35 = !lean_is_exclusive(x_30); -if (x_35 == 0) -{ -lean_object* x_36; -x_36 = lean_ctor_get(x_30, 0); +x_36 = l_Lean_Meta_Match_Unify_expandIfVar(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_17); +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_108 = lean_expr_eqv(x_1, x_16); +if (x_108 == 0) +{ +uint8_t x_109; +x_109 = 1; +x_39 = x_109; +goto block_107; +} +else +{ +uint8_t x_110; +x_110 = lean_expr_eqv(x_2, x_37); +if (x_110 == 0) +{ +uint8_t x_111; +x_111 = 1; +x_39 = x_111; +goto block_107; +} +else +{ +uint8_t x_112; +x_112 = 0; +x_39 = x_112; +goto block_107; +} +} +block_35: +{ +if (x_19 == 0) +{ +lean_object* x_21; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_2); +lean_dec(x_1); +if (lean_is_scalar(x_18)) { + x_21 = lean_alloc_ctor(0, 2, 0); +} else { + x_21 = x_18; +} +lean_ctor_set(x_21, 0, x_12); +lean_ctor_set(x_21, 1, x_20); +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; lean_object* x_29; lean_object* x_30; uint8_t x_31; +lean_dec(x_18); +x_22 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_22, 0, x_1); +x_23 = l_Lean_Meta_Match_Unify_unify___closed__3; +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_Meta_isLevelDefEqAux___main___lambda__1___closed__3; +x_26 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_26, 0, x_24); +lean_ctor_set(x_26, 1, x_25); +x_27 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_27, 0, x_2); +x_28 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +x_29 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_30 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(x_29, x_28, x_3, x_4, x_5, x_6, x_7, x_8, x_20); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +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_12); return x_30; } else { -lean_object* x_37; lean_object* x_38; -x_37 = lean_ctor_get(x_30, 1); -lean_inc(x_37); +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_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_31); -lean_ctor_set(x_38, 1, x_37); -return x_38; +x_34 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_34, 0, x_12); +lean_ctor_set(x_34, 1, x_33); +return x_34; +} +} +} +block_107: +{ +if (x_39 == 0) +{ +lean_dec(x_37); +lean_dec(x_16); +switch (lean_obj_tag(x_1)) { +case 1: +{ +lean_dec(x_18); +lean_dec(x_12); +switch (lean_obj_tag(x_2)) { +case 1: +{ +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, 0); +lean_inc(x_40); +x_41 = lean_ctor_get(x_2, 0); +lean_inc(x_41); +x_42 = l_Lean_Meta_Match_Unify_assign(x_40, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_38); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_unbox(x_43); +if (x_44 == 0) +{ +lean_object* x_45; lean_object* x_46; +lean_dec(x_43); +x_45 = lean_ctor_get(x_42, 1); +lean_inc(x_45); +lean_dec(x_42); +x_46 = l_Lean_Meta_Match_Unify_assign(x_41, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_45); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_46; +} +else +{ +uint8_t x_47; +lean_dec(x_41); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_1); +x_47 = !lean_is_exclusive(x_42); +if (x_47 == 0) +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_42, 0); +lean_dec(x_48); +return x_42; +} +else +{ +lean_object* x_49; lean_object* x_50; +x_49 = lean_ctor_get(x_42, 1); +lean_inc(x_49); +lean_dec(x_42); +x_50 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_50, 0, x_43); +lean_ctor_set(x_50, 1, x_49); +return x_50; } } } case 10: { -lean_object* x_39; -x_39 = lean_ctor_get(x_2, 1); -lean_inc(x_39); +lean_object* x_51; +x_51 = lean_ctor_get(x_2, 1); +lean_inc(x_51); lean_dec(x_2); -x_2 = x_39; -x_9 = x_23; +x_2 = x_51; +x_9 = x_38; goto _start; } default: { -lean_object* x_41; lean_object* x_42; -x_41 = lean_ctor_get(x_1, 0); -lean_inc(x_41); +lean_object* x_53; lean_object* x_54; +x_53 = lean_ctor_get(x_1, 0); +lean_inc(x_53); lean_dec(x_1); -x_42 = l_Lean_Meta_Match_Unify_assign(x_41, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_23); +x_54 = l_Lean_Meta_Match_Unify_assign(x_53, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_38); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -return x_42; +return x_54; } } } @@ -11154,168 +13661,182 @@ case 5: switch (lean_obj_tag(x_2)) { case 1: { -lean_object* x_43; lean_object* x_44; -lean_dec(x_15); -x_43 = lean_ctor_get(x_2, 0); -lean_inc(x_43); +lean_object* x_55; lean_object* x_56; +lean_dec(x_18); +lean_dec(x_12); +x_55 = lean_ctor_get(x_2, 0); +lean_inc(x_55); lean_dec(x_2); -x_44 = l_Lean_Meta_Match_Unify_assign(x_43, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_23); +x_56 = l_Lean_Meta_Match_Unify_assign(x_55, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_38); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -return x_44; +return x_56; } case 5: { -lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_dec(x_15); -x_45 = lean_ctor_get(x_1, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_1, 1); -lean_inc(x_46); +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; +lean_dec(x_18); +lean_dec(x_12); +x_57 = lean_ctor_get(x_1, 0); +lean_inc(x_57); +x_58 = lean_ctor_get(x_1, 1); +lean_inc(x_58); lean_dec(x_1); -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_59 = lean_ctor_get(x_2, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_2, 1); +lean_inc(x_60); lean_dec(x_2); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_49 = l_Lean_Meta_Match_Unify_unify___main(x_45, x_47, x_3, x_4, x_5, x_6, x_7, x_8, x_23); -if (lean_obj_tag(x_49) == 0) +x_61 = l_Lean_Meta_Match_Unify_unify(x_57, x_59, x_3, x_4, x_5, x_6, x_7, x_8, x_38); +if (lean_obj_tag(x_61) == 0) { -lean_object* x_50; uint8_t x_51; -x_50 = lean_ctor_get(x_49, 0); -lean_inc(x_50); -x_51 = lean_unbox(x_50); -if (x_51 == 0) +lean_object* x_62; uint8_t x_63; +x_62 = lean_ctor_get(x_61, 0); +lean_inc(x_62); +x_63 = lean_unbox(x_62); +if (x_63 == 0) { -uint8_t x_52; -lean_dec(x_48); -lean_dec(x_46); +uint8_t x_64; +lean_dec(x_60); +lean_dec(x_58); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_52 = !lean_is_exclusive(x_49); -if (x_52 == 0) +x_64 = !lean_is_exclusive(x_61); +if (x_64 == 0) { -lean_object* x_53; -x_53 = lean_ctor_get(x_49, 0); -lean_dec(x_53); -return x_49; +lean_object* x_65; +x_65 = lean_ctor_get(x_61, 0); +lean_dec(x_65); +return x_61; } else { -lean_object* x_54; lean_object* x_55; -x_54 = lean_ctor_get(x_49, 1); -lean_inc(x_54); -lean_dec(x_49); -x_55 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_55, 0, x_50); -lean_ctor_set(x_55, 1, x_54); -return x_55; +lean_object* x_66; lean_object* x_67; +x_66 = lean_ctor_get(x_61, 1); +lean_inc(x_66); +lean_dec(x_61); +x_67 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_67, 0, x_62); +lean_ctor_set(x_67, 1, x_66); +return x_67; } } else { -lean_object* x_56; -lean_dec(x_50); -x_56 = lean_ctor_get(x_49, 1); -lean_inc(x_56); -lean_dec(x_49); -x_1 = x_46; -x_2 = x_48; -x_9 = x_56; +lean_object* x_68; +lean_dec(x_62); +x_68 = lean_ctor_get(x_61, 1); +lean_inc(x_68); +lean_dec(x_61); +x_1 = x_58; +x_2 = x_60; +x_9 = x_68; goto _start; } } else { -uint8_t x_58; -lean_dec(x_48); -lean_dec(x_46); +uint8_t x_70; +lean_dec(x_60); +lean_dec(x_58); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_58 = !lean_is_exclusive(x_49); -if (x_58 == 0) +x_70 = !lean_is_exclusive(x_61); +if (x_70 == 0) { -return x_49; +return x_61; } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_49, 0); -x_60 = lean_ctor_get(x_49, 1); -lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_49); -x_61 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_61, 0, x_59); -lean_ctor_set(x_61, 1, x_60); -return x_61; +lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_71 = lean_ctor_get(x_61, 0); +x_72 = lean_ctor_get(x_61, 1); +lean_inc(x_72); +lean_inc(x_71); +lean_dec(x_61); +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; } } } case 10: { -lean_object* x_62; -lean_dec(x_15); -x_62 = lean_ctor_get(x_2, 1); -lean_inc(x_62); +lean_object* x_74; +lean_dec(x_18); +lean_dec(x_12); +x_74 = lean_ctor_get(x_2, 1); +lean_inc(x_74); lean_dec(x_2); -x_2 = x_62; -x_9 = x_23; +x_2 = x_74; +x_9 = x_38; goto _start; } default: { -lean_object* x_64; lean_object* x_65; uint8_t x_66; -x_64 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_unify___main___lambda__1___boxed), 3, 2); -lean_closure_set(x_64, 0, x_1); -lean_closure_set(x_64, 1, x_2); -x_65 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_11, x_64, x_3, x_4, x_5, x_6, x_7, x_8, x_23); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -x_66 = !lean_is_exclusive(x_65); -if (x_66 == 0) +lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; +x_76 = lean_st_ref_get(x_8, x_38); +x_77 = lean_ctor_get(x_76, 0); +lean_inc(x_77); +x_78 = lean_ctor_get(x_77, 3); +lean_inc(x_78); +lean_dec(x_77); +x_79 = lean_ctor_get_uint8(x_78, sizeof(void*)*1); +lean_dec(x_78); +if (x_79 == 0) { -lean_object* x_67; -x_67 = lean_ctor_get(x_65, 0); -lean_dec(x_67); -lean_ctor_set(x_65, 0, x_15); -return x_65; +lean_object* x_80; uint8_t x_81; +x_80 = lean_ctor_get(x_76, 1); +lean_inc(x_80); +lean_dec(x_76); +x_81 = 0; +x_19 = x_81; +x_20 = x_80; +goto block_35; } else { -lean_object* x_68; lean_object* x_69; -x_68 = lean_ctor_get(x_65, 1); -lean_inc(x_68); -lean_dec(x_65); -x_69 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_69, 0, x_15); -lean_ctor_set(x_69, 1, x_68); -return x_69; +lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; uint8_t x_87; +x_82 = lean_ctor_get(x_76, 1); +lean_inc(x_82); +lean_dec(x_76); +x_83 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_84 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_83, x_3, x_4, x_5, x_6, x_7, x_8, x_82); +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_unbox(x_85); +lean_dec(x_85); +x_19 = x_87; +x_20 = x_86; +goto block_35; } } } } case 10: { -lean_object* x_70; -lean_dec(x_15); -x_70 = lean_ctor_get(x_1, 1); -lean_inc(x_70); +lean_object* x_88; +lean_dec(x_18); +lean_dec(x_12); +x_88 = lean_ctor_get(x_1, 1); +lean_inc(x_88); lean_dec(x_1); -x_1 = x_70; -x_9 = x_23; +x_1 = x_88; +x_9 = x_38; goto _start; } default: @@ -11323,61 +13844,71 @@ default: switch (lean_obj_tag(x_2)) { case 1: { -lean_object* x_72; lean_object* x_73; -lean_dec(x_15); -x_72 = lean_ctor_get(x_2, 0); -lean_inc(x_72); +lean_object* x_90; lean_object* x_91; +lean_dec(x_18); +lean_dec(x_12); +x_90 = lean_ctor_get(x_2, 0); +lean_inc(x_90); lean_dec(x_2); -x_73 = l_Lean_Meta_Match_Unify_assign(x_72, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_23); +x_91 = l_Lean_Meta_Match_Unify_assign(x_90, x_1, x_3, x_4, x_5, x_6, x_7, x_8, x_38); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -return x_73; +return x_91; } case 10: { -lean_object* x_74; -lean_dec(x_15); -x_74 = lean_ctor_get(x_2, 1); -lean_inc(x_74); +lean_object* x_92; +lean_dec(x_18); +lean_dec(x_12); +x_92 = lean_ctor_get(x_2, 1); +lean_inc(x_92); lean_dec(x_2); -x_2 = x_74; -x_9 = x_23; +x_2 = x_92; +x_9 = x_38; goto _start; } default: { -lean_object* x_76; lean_object* x_77; uint8_t x_78; -x_76 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Unify_unify___main___lambda__1___boxed), 3, 2); -lean_closure_set(x_76, 0, x_1); -lean_closure_set(x_76, 1, x_2); -x_77 = l_Lean_MonadTracer_trace___at_Lean_Meta_Match_Unify_assign___spec__1(x_11, x_76, x_3, x_4, x_5, x_6, x_7, x_8, x_23); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -x_78 = !lean_is_exclusive(x_77); -if (x_78 == 0) +lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; +x_94 = lean_st_ref_get(x_8, x_38); +x_95 = lean_ctor_get(x_94, 0); +lean_inc(x_95); +x_96 = lean_ctor_get(x_95, 3); +lean_inc(x_96); +lean_dec(x_95); +x_97 = lean_ctor_get_uint8(x_96, sizeof(void*)*1); +lean_dec(x_96); +if (x_97 == 0) { -lean_object* x_79; -x_79 = lean_ctor_get(x_77, 0); -lean_dec(x_79); -lean_ctor_set(x_77, 0, x_15); -return x_77; +lean_object* x_98; uint8_t x_99; +x_98 = lean_ctor_get(x_94, 1); +lean_inc(x_98); +lean_dec(x_94); +x_99 = 0; +x_19 = x_99; +x_20 = x_98; +goto block_35; } else { -lean_object* x_80; lean_object* x_81; -x_80 = lean_ctor_get(x_77, 1); -lean_inc(x_80); -lean_dec(x_77); -x_81 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_81, 0, x_15); -lean_ctor_set(x_81, 1, x_80); -return x_81; -} -} +lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; uint8_t x_105; +x_100 = lean_ctor_get(x_94, 1); +lean_inc(x_100); +lean_dec(x_94); +x_101 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_102 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_Match_Unify_assign___spec__2(x_101, x_3, x_4, x_5, x_6, x_7, x_8, x_100); +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_unbox(x_103); +lean_dec(x_103); +x_19 = x_105; +x_20 = x_104; +goto block_35; } } } @@ -11386,101 +13917,120 @@ return x_81; } else { -uint8_t x_82; +lean_dec(x_18); +lean_dec(x_12); +lean_dec(x_2); +lean_dec(x_1); +x_1 = x_16; +x_2 = x_37; +x_9 = x_38; +goto _start; +} +} +} +else +{ +uint8_t x_113; lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); -x_82 = !lean_is_exclusive(x_14); -if (x_82 == 0) +x_113 = !lean_is_exclusive(x_11); +if (x_113 == 0) { -lean_object* x_83; -x_83 = lean_ctor_get(x_14, 0); -lean_dec(x_83); -return x_14; +lean_object* x_114; +x_114 = lean_ctor_get(x_11, 0); +lean_dec(x_114); +return x_11; } else { -lean_object* x_84; lean_object* x_85; -x_84 = lean_ctor_get(x_14, 1); -lean_inc(x_84); -lean_dec(x_14); -x_85 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_85, 0, x_15); -lean_ctor_set(x_85, 1, x_84); -return x_85; +lean_object* x_115; lean_object* x_116; +x_115 = lean_ctor_get(x_11, 1); +lean_inc(x_115); +lean_dec(x_11); +x_116 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_116, 0, x_12); +lean_ctor_set(x_116, 1, x_115); +return x_116; } } } else { -uint8_t x_86; +uint8_t x_117; lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_2); lean_dec(x_1); -x_86 = !lean_is_exclusive(x_14); -if (x_86 == 0) +x_117 = !lean_is_exclusive(x_11); +if (x_117 == 0) { -return x_14; +return x_11; } else { -lean_object* x_87; lean_object* x_88; lean_object* x_89; -x_87 = lean_ctor_get(x_14, 0); -x_88 = lean_ctor_get(x_14, 1); -lean_inc(x_88); -lean_inc(x_87); -lean_dec(x_14); -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; +lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_118 = lean_ctor_get(x_11, 0); +x_119 = lean_ctor_get(x_11, 1); +lean_inc(x_119); +lean_inc(x_118); +lean_dec(x_11); +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_132: +{ +if (x_122 == 0) +{ +x_10 = x_123; +goto block_121; +} +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; lean_object* x_130; lean_object* x_131; +lean_inc(x_1); +x_124 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_124, 0, x_1); +x_125 = l_Lean_Meta_isLevelDefEqAux___main___lambda__1___closed__3; +x_126 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_126, 0, x_124); +lean_ctor_set(x_126, 1, x_125); +lean_inc(x_2); +x_127 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_127, 0, x_2); +x_128 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_128, 0, x_126); +lean_ctor_set(x_128, 1, x_127); +x_129 = l_Lean_Meta_Match_Unify_assign___closed__2; +x_130 = l_Lean_addTrace___at_Lean_Meta_Match_Unify_assign___spec__1(x_129, x_128, x_3, x_4, x_5, x_6, x_7, x_8, x_123); +x_131 = lean_ctor_get(x_130, 1); +lean_inc(x_131); +lean_dec(x_130); +x_10 = x_131; +goto block_121; } } } } -lean_object* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___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* l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___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_10; -x_10 = l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_Meta_isExprDefEq___at_Lean_Meta_Match_Unify_unify___spec__1(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); return x_10; } } -lean_object* l_Lean_Meta_Match_Unify_unify___main___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_Unify_unify___main___lambda__1(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -lean_object* l_Lean_Meta_Match_Unify_unify___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_Meta_Match_Unify_unify___main(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); -return x_10; -} -} -lean_object* l_Lean_Meta_Match_Unify_unify(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_Meta_Match_Unify_unify___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_10; -} -} lean_object* l_Lean_Meta_Match_Unify_unify___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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: { @@ -11491,17 +14041,137 @@ lean_dec(x_3); return x_10; } } -lean_object* l___private_Lean_Meta_Match_Match_23__unify_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f_match__1___rarg(lean_object* x_1, lean_object* x_2) { _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; -x_9 = l_Lean_Meta_instantiateMVars___at_Lean_Meta_instantiateLocalDeclMVars___spec__1(x_2, x_4, x_5, x_6, x_7, x_8); +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___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: +{ +uint8_t x_7; +x_7 = l_Lean_Expr_hasMVar(x_1); +if (x_7 == 0) +{ +lean_object* x_8; +x_8 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_8, 0, x_1); +lean_ctor_set(x_8, 1, x_6); +return x_8; +} +else +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; +x_9 = lean_st_ref_take(x_3, x_6); 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_Meta_instantiateMVars___at_Lean_Meta_instantiateLocalDeclMVars___spec__1(x_3, x_4, x_5, x_6, x_7, x_11); +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; uint8_t x_18; +x_13 = lean_ctor_get(x_10, 0); +x_14 = l_Lean_MetavarContext_instantiateMVars(x_13, x_1); +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_ctor_set(x_10, 0, x_16); +x_17 = lean_st_ref_set(x_3, x_10, x_11); +x_18 = !lean_is_exclusive(x_17); +if (x_18 == 0) +{ +lean_object* x_19; +x_19 = lean_ctor_get(x_17, 0); +lean_dec(x_19); +lean_ctor_set(x_17, 0, x_15); +return x_17; +} +else +{ +lean_object* x_20; lean_object* x_21; +x_20 = lean_ctor_get(x_17, 1); +lean_inc(x_20); +lean_dec(x_17); +x_21 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_21, 0, x_15); +lean_ctor_set(x_21, 1, x_20); +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; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_22 = lean_ctor_get(x_10, 0); +x_23 = lean_ctor_get(x_10, 1); +x_24 = lean_ctor_get(x_10, 2); +lean_inc(x_24); +lean_inc(x_23); +lean_inc(x_22); +lean_dec(x_10); +x_25 = l_Lean_MetavarContext_instantiateMVars(x_22, x_1); +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_alloc_ctor(0, 3, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_23); +lean_ctor_set(x_28, 2, x_24); +x_29 = lean_st_ref_set(x_3, x_28, x_11); +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_29); + x_31 = lean_box(0); +} +if (lean_is_scalar(x_31)) { + x_32 = lean_alloc_ctor(0, 2, 0); +} else { + x_32 = x_31; +} +lean_ctor_set(x_32, 0, x_26); +lean_ctor_set(x_32, 1, x_30); +return x_32; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_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; 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_9 = l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___spec__1(x_2, x_4, x_5, x_6, x_7, 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 = l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___spec__1(x_3, x_4, x_5, x_6, x_7, x_11); x_13 = lean_ctor_get(x_12, 0); lean_inc(x_13); x_14 = lean_ctor_get(x_12, 1); @@ -11514,7 +14184,7 @@ lean_inc(x_17); x_18 = lean_ctor_get(x_16, 1); lean_inc(x_18); lean_dec(x_16); -x_19 = l_Lean_Meta_Match_Unify_unify___main(x_10, x_13, x_1, x_17, x_4, x_5, x_6, x_7, x_18); +x_19 = l_Lean_Meta_Match_Unify_unify(x_10, x_13, x_1, x_17, x_4, x_5, x_6, x_7, x_18); if (lean_obj_tag(x_19) == 0) { lean_object* x_20; lean_object* x_21; lean_object* x_22; uint8_t x_23; @@ -11608,16 +14278,111 @@ return x_40; } } } -lean_object* l___private_Lean_Meta_Match_Match_23__unify_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* l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_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) { +_start: +{ +lean_object* x_7; +x_7 = l_Lean_Meta_instantiateMVars___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f___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); +return x_7; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_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___private_Lean_Meta_Match_Match_23__unify_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_1); return x_9; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_3(x_2, x_1, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__3___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f_match__3___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___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; uint8_t x_9; @@ -11645,7 +14410,7 @@ x_15 = x_12; x_16 = l_Lean_Expr_fvarId_x21(x_15); lean_dec(x_15); lean_inc(x_3); -x_17 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(x_16, x_3, x_4, x_5, x_6, x_7); +x_17 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(x_16, x_3, x_4, x_5, x_6, x_7); 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; @@ -11692,7 +14457,7 @@ return x_28; } } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_2) == 0) @@ -11763,7 +14528,7 @@ goto _start; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -11782,7 +14547,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_LocalDecl_applyFVarSubst(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -11796,7 +14561,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_LocalDecl_applyFVarSubst(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -11805,7 +14570,7 @@ return x_13; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -11823,8 +14588,8 @@ if (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_2, 0); x_6 = lean_ctor_get(x_2, 1); -x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_1, x_6); +x_7 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_5); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -11837,8 +14602,8 @@ x_10 = lean_ctor_get(x_2, 1); lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); -x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst___main(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_1, x_10); +x_11 = l_Lean_Meta_Match_Pattern_applyFVarSubst(x_1, x_9); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -11847,7 +14612,7 @@ return x_13; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -11868,14 +14633,14 @@ x_7 = lean_ctor_get(x_3, 1); x_8 = l_Lean_Expr_fvarId_x21(x_6); lean_dec(x_6); x_9 = l_Lean_Meta_FVarSubst_get(x_1, x_8); -x_10 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_7); +x_10 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_7); if (lean_obj_tag(x_9) == 1) { lean_object* x_11; uint8_t x_12; uint8_t x_13; x_11 = lean_ctor_get(x_9, 0); lean_inc(x_11); x_12 = 0; -x_13 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_11, x_12, x_2); +x_13 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_11, x_12, x_2); if (x_13 == 0) { lean_object* x_14; @@ -11918,14 +14683,14 @@ lean_dec(x_3); x_19 = l_Lean_Expr_fvarId_x21(x_17); lean_dec(x_17); x_20 = l_Lean_Meta_FVarSubst_get(x_1, x_19); -x_21 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_18); +x_21 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_18); if (lean_obj_tag(x_20) == 1) { lean_object* x_22; uint8_t x_23; uint8_t x_24; x_22 = lean_ctor_get(x_20, 0); lean_inc(x_22); x_23 = 0; -x_24 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_22__inLocalDecls___spec__1(x_22, x_23, x_2); +x_24 = l_List_foldr___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_inLocalDecls___spec__1(x_22, x_23, x_2); if (x_24 == 0) { lean_object* x_25; lean_object* x_26; @@ -11963,7 +14728,66 @@ return x_30; } } } -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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* l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6___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; +x_8 = l___private_Lean_Meta_Basic_29__withExistingLocalDeclsImp___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +if (lean_obj_tag(x_8) == 0) +{ +uint8_t x_9; +x_9 = !lean_is_exclusive(x_8); +if (x_9 == 0) +{ +return x_8; +} +else +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +x_10 = lean_ctor_get(x_8, 0); +x_11 = lean_ctor_get(x_8, 1); +lean_inc(x_11); +lean_inc(x_10); +lean_dec(x_8); +x_12 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_12, 0, x_10); +lean_ctor_set(x_12, 1, x_11); +return x_12; +} +} +else +{ +uint8_t x_13; +x_13 = !lean_is_exclusive(x_8); +if (x_13 == 0) +{ +return x_8; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; +x_14 = lean_ctor_get(x_8, 0); +x_15 = lean_ctor_get(x_8, 1); +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_8); +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_object* l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6___rarg), 7, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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_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; @@ -11973,7 +14797,7 @@ lean_inc(x_3); x_14 = l_Lean_Meta_Match_Alt_replaceFVarId(x_2, x_13, x_3); lean_inc(x_5); x_15 = x_5; -x_16 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__1___boxed), 7, 2); +x_16 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__1___boxed), 7, 2); lean_closure_set(x_16, 0, x_12); lean_closure_set(x_16, 1, x_15); x_17 = x_16; @@ -11995,7 +14819,7 @@ lean_dec(x_19); x_22 = lean_ctor_get(x_14, 3); lean_inc(x_22); x_23 = l_List_append___rarg(x_21, x_22); -x_24 = l___private_Lean_Meta_Match_Match_23__unify_x3f(x_23, x_6, x_4, x_7, x_8, x_9, x_10, x_20); +x_24 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_unify_x3f(x_23, x_6, x_4, x_7, x_8, x_9, x_10, x_20); if (lean_obj_tag(x_24) == 0) { lean_object* x_25; @@ -12046,18 +14870,18 @@ if (x_34 == 0) 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_35 = lean_ctor_get(x_25, 0); x_36 = lean_box(0); -x_37 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(x_35, x_23, x_36); -x_38 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_35, x_37); +x_37 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(x_35, x_23, x_36); +x_38 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_35, x_37); x_39 = lean_ctor_get(x_14, 4); lean_inc(x_39); -x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_35, x_39); +x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_35, x_39); x_41 = lean_ctor_get(x_14, 2); lean_inc(x_41); lean_dec(x_14); x_42 = l_Lean_Meta_FVarSubst_apply(x_35, x_41); x_43 = l_Array_toList___rarg(x_5); lean_dec(x_5); -x_44 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_35, x_38, x_43); +x_44 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_35, x_38, x_43); lean_dec(x_35); x_45 = lean_ctor_get(x_3, 0); lean_inc(x_45); @@ -12081,18 +14905,18 @@ x_49 = lean_ctor_get(x_25, 0); lean_inc(x_49); lean_dec(x_25); x_50 = lean_box(0); -x_51 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(x_49, x_23, x_50); -x_52 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_49, x_51); +x_51 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(x_49, x_23, x_50); +x_52 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_49, x_51); x_53 = lean_ctor_get(x_14, 4); lean_inc(x_53); -x_54 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_49, x_53); +x_54 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_49, x_53); x_55 = lean_ctor_get(x_14, 2); lean_inc(x_55); lean_dec(x_14); x_56 = l_Lean_Meta_FVarSubst_apply(x_49, x_55); x_57 = l_Array_toList___rarg(x_5); lean_dec(x_5); -x_58 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_49, x_52, x_57); +x_58 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_49, x_52, x_57); lean_dec(x_49); x_59 = lean_ctor_get(x_3, 0); lean_inc(x_59); @@ -12128,18 +14952,18 @@ if (lean_is_exclusive(x_25)) { x_66 = lean_box(0); } x_67 = lean_box(0); -x_68 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(x_65, x_23, x_67); -x_69 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_65, x_68); +x_68 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(x_65, x_23, x_67); +x_69 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_65, x_68); x_70 = lean_ctor_get(x_14, 4); lean_inc(x_70); -x_71 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_65, x_70); +x_71 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_65, x_70); x_72 = lean_ctor_get(x_14, 2); lean_inc(x_72); lean_dec(x_14); x_73 = l_Lean_Meta_FVarSubst_apply(x_65, x_72); x_74 = l_Array_toList___rarg(x_5); lean_dec(x_5); -x_75 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_65, x_69, x_74); +x_75 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_65, x_69, x_74); lean_dec(x_65); x_76 = lean_ctor_get(x_3, 0); lean_inc(x_76); @@ -12226,13 +15050,13 @@ return x_89; } } } -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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) { _start: { lean_object* x_10; lean_inc(x_5); lean_inc(x_1); -x_10 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(x_1, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(x_1, 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; @@ -12245,7 +15069,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_13 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_12, x_5, x_6, x_7, x_8, x_11); +x_13 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_12, x_5, x_6, x_7, x_8, x_11); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; lean_object* x_15; lean_object* x_16; @@ -12258,7 +15082,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_16 = l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(x_14, x_5, x_6, x_7, x_8, x_15); +x_16 = l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(x_14, 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; lean_object* x_19; @@ -12295,7 +15119,7 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_26); -x_27 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_26, x_5, x_6, x_7, x_8, x_21); +x_27 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_26, x_5, x_6, x_7, x_8, x_21); if (lean_obj_tag(x_27) == 0) { lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; @@ -12304,12 +15128,12 @@ lean_inc(x_28); x_29 = lean_ctor_get(x_27, 1); lean_inc(x_29); lean_dec(x_27); -x_30 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___lambda__1), 11, 4); +x_30 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___lambda__1), 11, 4); lean_closure_set(x_30, 0, x_26); lean_closure_set(x_30, 1, x_1); lean_closure_set(x_30, 2, x_3); lean_closure_set(x_30, 3, x_17); -x_31 = l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNamesImp___spec__3___rarg(x_28, x_30, x_5, x_6, x_7, x_8, x_29); +x_31 = l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_generalizeIndices___spec__1___rarg(x_28, x_30, x_5, x_6, x_7, x_8, x_29); return x_31; } else @@ -12465,13 +15289,13 @@ return x_51; } } } -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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; lean_object* x_11; lean_object* x_12; lean_object* x_13; x_9 = lean_ctor_get(x_1, 3); lean_inc(x_9); -x_10 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___lambda__2___boxed), 9, 3); +x_10 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___lambda__2___boxed), 9, 3); lean_closure_set(x_10, 0, x_2); lean_closure_set(x_10, 1, x_3); lean_closure_set(x_10, 2, x_1); @@ -12479,68 +15303,220 @@ x_11 = l_Lean_Meta_setInlineAttribute___rarg___closed__2; x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); lean_closure_set(x_12, 0, x_11); lean_closure_set(x_12, 1, x_10); -x_13 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_9, x_12, x_4, x_5, x_6, x_7, x_8); +x_13 = l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6___rarg(x_9, x_12, x_4, x_5, x_6, x_7, x_8); return x_13; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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) { _start: { lean_object* x_8; -x_8 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___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); return x_8; } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__2(x_1, x_2, x_3); +x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__2(x_1, x_2, x_3); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__3(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__3(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__4(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__4(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_3); +x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__5(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_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) { _start: { lean_object* x_10; -x_10 = l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_4); return x_10; } } -lean_object* l___private_Lean_Meta_Match_Match_25__getInductiveVal_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 5) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; +lean_dec(x_2); +x_6 = lean_apply_1(x_3, x_1); +return x_6; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 4) +{ +lean_object* x_4; lean_object* x_5; uint64_t x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get_uint64(x_1, sizeof(void*)*2); +lean_dec(x_1); +x_7 = lean_box_uint64(x_6); +x_8 = lean_apply_3(x_2, x_4, x_5, x_7); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___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_5, x_6); +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; +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); +lean_inc(x_1); +x_12 = lean_environment_find(x_11, x_1); +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_18; +lean_free_object(x_7); +x_13 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_13, 0, x_1); +x_14 = l_Lean_throwUnknownConstant___rarg___closed__3; +x_15 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_13); +x_16 = l_Lean_throwUnknownConstant___rarg___closed__5; +x_17 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_17, 0, x_15); +lean_ctor_set(x_17, 1, x_16); +x_18 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_17, x_2, x_3, x_4, x_5, x_10); +return x_18; +} +else +{ +lean_object* x_19; +lean_dec(x_1); +x_19 = lean_ctor_get(x_12, 0); +lean_inc(x_19); +lean_dec(x_12); +lean_ctor_set(x_7, 0, x_19); +return x_7; +} +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_20 = lean_ctor_get(x_7, 0); +x_21 = lean_ctor_get(x_7, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_7); +x_22 = lean_ctor_get(x_20, 0); +lean_inc(x_22); +lean_dec(x_20); +lean_inc(x_1); +x_23 = lean_environment_find(x_22, x_1); +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; +x_24 = lean_alloc_ctor(4, 1, 0); +lean_ctor_set(x_24, 0, x_1); +x_25 = l_Lean_throwUnknownConstant___rarg___closed__3; +x_26 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_26, 0, x_25); +lean_ctor_set(x_26, 1, x_24); +x_27 = l_Lean_throwUnknownConstant___rarg___closed__5; +x_28 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +x_29 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_28, x_2, x_3, x_4, x_5, x_21); +return x_29; +} +else +{ +lean_object* x_30; lean_object* x_31; +lean_dec(x_1); +x_30 = lean_ctor_get(x_23, 0); +lean_inc(x_30); +lean_dec(x_23); +x_31 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_31, 0, x_30); +lean_ctor_set(x_31, 1, x_21); +return x_31; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_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; @@ -12548,7 +15524,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_7 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_1, x_2, x_3, 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; @@ -12561,7 +15537,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_10 = l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(x_8, x_2, x_3, x_4, x_5, x_9); +x_10 = l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(x_8, x_2, x_3, x_4, x_5, x_9); if (lean_obj_tag(x_10) == 0) { uint8_t x_11; @@ -12580,7 +15556,7 @@ lean_free_object(x_10); x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); lean_dec(x_14); -x_16 = l_Lean_getConstInfo___at_Lean_Meta_getParamNamesImp___spec__1(x_15, x_2, x_3, x_4, x_5, x_13); +x_16 = l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___spec__1(x_15, x_2, x_3, x_4, x_5, x_13); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); @@ -12704,7 +15680,7 @@ lean_object* x_40; lean_object* x_41; x_40 = lean_ctor_get(x_39, 0); lean_inc(x_40); lean_dec(x_39); -x_41 = l_Lean_getConstInfo___at_Lean_Meta_getParamNamesImp___spec__1(x_40, x_2, x_3, x_4, x_5, x_38); +x_41 = l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___spec__1(x_40, x_2, x_3, x_4, x_5, x_38); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); @@ -12862,11 +15838,53 @@ return x_65; } } } -lean_object* l___private_Lean_Meta_Match_Match_26__hasRecursiveType(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_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) { _start: { lean_object* x_7; -x_7 = l___private_Lean_Meta_Match_Match_25__getInductiveVal_x3f(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_Lean_getConstInfo___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f___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); +return x_7; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_apply_1(x_2, x_5); +return x_6; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType(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_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f(x_1, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_7) == 0) { lean_object* x_8; @@ -12961,6 +15979,87 @@ return x_30; } } } +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +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_apply_2(x_2, x_6, x_7); +return x_8; +} +} +} +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_processInaccessibleAsCtor_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 0) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_apply_3(x_2, x_5, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_processInaccessibleAsCtor_match__2___rarg), 3, 0); +return x_2; +} +} lean_object* l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(lean_object* x_1) { _start: { @@ -13009,7 +16108,7 @@ static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__ _start: { lean_object* x_1; -x_1 = lean_mk_string("inaccessible in ctor step "); +x_1 = lean_mk_string("dependent match elimination failed, inaccessible pattern found"); return x_1; } } @@ -13018,242 +16117,175 @@ _start: { lean_object* x_1; lean_object* x_2; x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_1); -x_4 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3; -x_5 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1() { -_start: -{ lean_object* x_1; -x_1 = lean_mk_string("dependent match elimination failed, inaccessible pattern found "); +x_1 = lean_mk_string("\nconstructor expected"); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2; -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_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("constructor expected"); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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) { +lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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; x_15 = l_Lean_Expr_constructorApp_x3f(x_1, x_9); 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_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_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_16 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_2); +x_16 = l_Lean_Meta_Match_Pattern_toMessageData(x_2); x_17 = l_Lean_indentD(x_16); -x_18 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3; +x_18 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___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_MessageData_ofList___closed__3; +x_20 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___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_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6; -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_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1___rarg(x_3, x_23, x_10, x_11, x_12, x_13, x_14); +x_22 = l_Lean_throwErrorAt___at_Lean_Meta_Match_Alt_checkAndReplaceFVarId___spec__1___rarg(x_3, x_21, x_10, x_11, x_12, x_13, x_14); lean_dec(x_3); -return x_24; +return x_22; } else { -uint8_t x_25; +uint8_t x_23; lean_dec(x_12); lean_dec(x_2); -x_25 = !lean_is_exclusive(x_15); -if (x_25 == 0) +x_23 = !lean_is_exclusive(x_15); +if (x_23 == 0) { -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_15, 0); -x_27 = lean_ctor_get(x_26, 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_15, 0); +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_25, 0); lean_inc(x_27); -x_28 = lean_ctor_get(x_26, 1); +x_28 = lean_ctor_get(x_27, 0); lean_inc(x_28); -lean_dec(x_26); -x_29 = lean_ctor_get(x_27, 0); -lean_inc(x_29); -x_30 = lean_ctor_get(x_29, 0); -lean_inc(x_30); -lean_dec(x_29); -x_31 = lean_name_eq(x_30, x_4); -lean_dec(x_30); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; -lean_dec(x_28); lean_dec(x_27); +x_29 = lean_name_eq(x_28, x_4); +lean_dec(x_28); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; +lean_dec(x_26); +lean_dec(x_25); lean_free_object(x_15); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); -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_14); -return x_33; +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_14); +return x_31; } 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_27, 3); -lean_inc(x_34); -lean_dec(x_27); -x_35 = lean_array_get_size(x_28); -x_36 = l_Array_extract___rarg(x_28, x_34, x_35); -x_37 = l_Array_toList___rarg(x_36); -lean_dec(x_36); -x_38 = l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(x_37); -x_39 = l_List_append___rarg(x_38, x_5); -x_40 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_40, 0, x_3); -lean_ctor_set(x_40, 1, x_6); -lean_ctor_set(x_40, 2, x_7); -lean_ctor_set(x_40, 3, x_8); -lean_ctor_set(x_40, 4, x_39); -lean_ctor_set(x_15, 0, x_40); -x_41 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_41, 0, x_15); -lean_ctor_set(x_41, 1, x_14); -return x_41; +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_32 = lean_ctor_get(x_25, 3); +lean_inc(x_32); +lean_dec(x_25); +x_33 = lean_array_get_size(x_26); +x_34 = l_Array_extract___rarg(x_26, x_32, x_33); +x_35 = l_Array_toList___rarg(x_34); +lean_dec(x_34); +x_36 = l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(x_35); +x_37 = l_List_append___rarg(x_36, x_5); +x_38 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_38, 0, x_3); +lean_ctor_set(x_38, 1, x_6); +lean_ctor_set(x_38, 2, x_7); +lean_ctor_set(x_38, 3, x_8); +lean_ctor_set(x_38, 4, x_37); +lean_ctor_set(x_15, 0, x_38); +x_39 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_39, 0, x_15); +lean_ctor_set(x_39, 1, x_14); +return x_39; } } 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; -x_42 = lean_ctor_get(x_15, 0); -lean_inc(x_42); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_40 = lean_ctor_get(x_15, 0); +lean_inc(x_40); lean_dec(x_15); -x_43 = lean_ctor_get(x_42, 0); +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_42, 1); +x_44 = lean_ctor_get(x_43, 0); lean_inc(x_44); -lean_dec(x_42); -x_45 = lean_ctor_get(x_43, 0); -lean_inc(x_45); -x_46 = lean_ctor_get(x_45, 0); -lean_inc(x_46); -lean_dec(x_45); -x_47 = lean_name_eq(x_46, x_4); -lean_dec(x_46); -if (x_47 == 0) -{ -lean_object* x_48; lean_object* x_49; -lean_dec(x_44); lean_dec(x_43); +x_45 = lean_name_eq(x_44, x_4); +lean_dec(x_44); +if (x_45 == 0) +{ +lean_object* x_46; lean_object* x_47; +lean_dec(x_42); +lean_dec(x_41); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); -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_14); -return x_49; +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_14); +return x_47; } 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; lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_50 = lean_ctor_get(x_43, 3); -lean_inc(x_50); -lean_dec(x_43); -x_51 = lean_array_get_size(x_44); -x_52 = l_Array_extract___rarg(x_44, x_50, x_51); -x_53 = l_Array_toList___rarg(x_52); -lean_dec(x_52); -x_54 = l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(x_53); -x_55 = l_List_append___rarg(x_54, x_5); -x_56 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_56, 0, x_3); -lean_ctor_set(x_56, 1, x_6); -lean_ctor_set(x_56, 2, x_7); -lean_ctor_set(x_56, 3, x_8); -lean_ctor_set(x_56, 4, x_55); -x_57 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_57, 0, 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_14); -return x_58; +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; +x_48 = lean_ctor_get(x_41, 3); +lean_inc(x_48); +lean_dec(x_41); +x_49 = lean_array_get_size(x_42); +x_50 = l_Array_extract___rarg(x_42, x_48, x_49); +x_51 = l_Array_toList___rarg(x_50); +lean_dec(x_50); +x_52 = l_List_map___main___at_Lean_Meta_Match_processInaccessibleAsCtor___spec__1(x_51); +x_53 = l_List_append___rarg(x_52, x_5); +x_54 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_54, 0, x_3); +lean_ctor_set(x_54, 1, x_6); +lean_ctor_set(x_54, 2, x_7); +lean_ctor_set(x_54, 3, x_8); +lean_ctor_set(x_54, 4, 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_14); +return x_56; } } } @@ -13263,20 +16295,69 @@ static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__ _start: { lean_object* x_1; -x_1 = lean_mk_string("match"); +x_1 = lean_mk_string("Lean.Meta.Match.processInaccessibleAsCtor"); return x_1; } } static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__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; +x_1 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1; +x_3 = lean_unsigned_to_nat(529u); +x_4 = lean_unsigned_to_nat(7u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("match"); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2; +x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("inaccessible in ctor step "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor(lean_object* x_1, 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: { @@ -13286,105 +16367,153 @@ x_9 = lean_ctor_get(x_1, 4); lean_inc(x_9); if (lean_obj_tag(x_9) == 0) { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_dec(x_2); lean_dec(x_1); x_10 = lean_ctor_get(x_8, 1); lean_inc(x_10); lean_dec(x_8); x_11 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_12 = l_unreachable_x21___rarg(x_11); -x_13 = lean_apply_5(x_12, x_3, x_4, x_5, x_6, x_10); -return x_13; +x_12 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; +x_13 = lean_panic_fn(x_11, x_12); +x_14 = lean_apply_5(x_13, x_3, x_4, x_5, x_6, x_10); +return x_14; } else { -lean_object* x_14; -x_14 = lean_ctor_get(x_9, 0); -lean_inc(x_14); -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; 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_15 = lean_ctor_get(x_8, 0); +lean_object* x_15; +x_15 = lean_ctor_get(x_9, 0); lean_inc(x_15); -x_16 = lean_ctor_get(x_8, 1); +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_31; lean_object* x_32; lean_object* x_33; uint8_t x_34; +x_16 = lean_ctor_get(x_8, 0); lean_inc(x_16); -lean_dec(x_8); -x_17 = lean_ctor_get(x_1, 0); +x_17 = lean_ctor_get(x_8, 1); lean_inc(x_17); -x_18 = lean_ctor_get(x_1, 1); +lean_dec(x_8); +x_18 = lean_ctor_get(x_1, 0); lean_inc(x_18); -x_19 = lean_ctor_get(x_1, 2); +x_19 = lean_ctor_get(x_1, 1); lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 3); +x_20 = lean_ctor_get(x_1, 2); lean_inc(x_20); -lean_dec(x_1); -x_21 = lean_ctor_get(x_9, 1); +x_21 = lean_ctor_get(x_1, 3); lean_inc(x_21); -lean_dec(x_9); -x_22 = lean_ctor_get(x_14, 0); +lean_dec(x_1); +x_22 = lean_ctor_get(x_9, 1); lean_inc(x_22); +lean_dec(x_9); x_23 = lean_ctor_get(x_15, 0); lean_inc(x_23); -lean_dec(x_15); -lean_inc(x_22); -x_24 = lean_alloc_closure((void*)(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___boxed), 2, 1); -lean_closure_set(x_24, 0, x_22); -x_25 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -x_26 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_25, x_24, x_3, x_4, x_5, x_6, x_16); -x_27 = lean_ctor_get(x_26, 1); -lean_inc(x_27); -lean_dec(x_26); -x_28 = lean_alloc_closure((void*)(l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1), 6, 1); -lean_closure_set(x_28, 0, x_22); -lean_inc(x_20); -x_29 = lean_alloc_closure((void*)(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___boxed), 14, 8); -lean_closure_set(x_29, 0, x_23); -lean_closure_set(x_29, 1, x_14); -lean_closure_set(x_29, 2, x_17); -lean_closure_set(x_29, 3, x_2); -lean_closure_set(x_29, 4, x_21); -lean_closure_set(x_29, 5, x_18); -lean_closure_set(x_29, 6, x_19); -lean_closure_set(x_29, 7, x_20); -x_30 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_30, 0, x_28); -lean_closure_set(x_30, 1, x_29); -x_31 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_20, x_30, x_3, x_4, x_5, x_6, x_27); -return x_31; +x_24 = lean_ctor_get(x_16, 0); +lean_inc(x_24); +lean_dec(x_16); +x_31 = lean_st_ref_get(x_6, x_17); +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_32, 3); +lean_inc(x_33); +lean_dec(x_32); +x_34 = lean_ctor_get_uint8(x_33, sizeof(void*)*1); +lean_dec(x_33); +if (x_34 == 0) +{ +lean_object* x_35; +x_35 = lean_ctor_get(x_31, 1); +lean_inc(x_35); +lean_dec(x_31); +x_25 = x_35; +goto block_30; } else { -lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -lean_dec(x_14); +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_31, 1); +lean_inc(x_36); +lean_dec(x_31); +x_37 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_38 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_37, x_3, x_4, x_5, x_6, x_36); +x_39 = lean_ctor_get(x_38, 0); +lean_inc(x_39); +x_40 = lean_unbox(x_39); +lean_dec(x_39); +if (x_40 == 0) +{ +lean_object* x_41; +x_41 = lean_ctor_get(x_38, 1); +lean_inc(x_41); +lean_dec(x_38); +x_25 = x_41; +goto block_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; +x_42 = lean_ctor_get(x_38, 1); +lean_inc(x_42); +lean_dec(x_38); +lean_inc(x_23); +x_43 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_43, 0, x_23); +x_44 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7; +x_45 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_45, 0, x_44); +lean_ctor_set(x_45, 1, x_43); +x_46 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_37, x_45, x_3, x_4, x_5, x_6, x_42); +x_47 = lean_ctor_get(x_46, 1); +lean_inc(x_47); +lean_dec(x_46); +x_25 = x_47; +goto block_30; +} +} +block_30: +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; +x_26 = lean_alloc_closure((void*)(l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2), 6, 1); +lean_closure_set(x_26, 0, x_23); +lean_inc(x_21); +x_27 = lean_alloc_closure((void*)(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___boxed), 14, 8); +lean_closure_set(x_27, 0, x_24); +lean_closure_set(x_27, 1, x_15); +lean_closure_set(x_27, 2, x_18); +lean_closure_set(x_27, 3, x_2); +lean_closure_set(x_27, 4, x_22); +lean_closure_set(x_27, 5, x_19); +lean_closure_set(x_27, 6, x_20); +lean_closure_set(x_27, 7, x_21); +x_28 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_28, 0, x_26); +lean_closure_set(x_28, 1, x_27); +x_29 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__2___rarg(x_21, x_28, x_3, x_4, x_5, x_6, x_25); +return x_29; +} +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +lean_dec(x_15); lean_dec(x_9); lean_dec(x_2); lean_dec(x_1); -x_32 = lean_ctor_get(x_8, 1); -lean_inc(x_32); +x_48 = lean_ctor_get(x_8, 1); +lean_inc(x_48); lean_dec(x_8); -x_33 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_34 = l_unreachable_x21___rarg(x_33); -x_35 = lean_apply_5(x_34, x_3, x_4, x_5, x_6, x_32); -return x_35; +x_49 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_50 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; +x_51 = lean_panic_fn(x_49, x_50); +x_52 = lean_apply_5(x_51, x_3, x_4, x_5, x_6, x_48); +return x_52; } } } } -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1(x_1, x_2); -lean_dec(x_2); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_processInaccessibleAsCtor___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* l_Lean_Meta_Match_processInaccessibleAsCtor___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_15; -x_15 = l_Lean_Meta_Match_processInaccessibleAsCtor___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); +x_15 = l_Lean_Meta_Match_processInaccessibleAsCtor___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_11); lean_dec(x_10); @@ -13392,7 +16521,285 @@ lean_dec(x_4); return x_15; } } -lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__1___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 1) +{ +lean_object* x_4; uint64_t x_5; lean_object* x_6; lean_object* x_7; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get_uint64(x_1, sizeof(void*)*1); +lean_dec(x_1); +x_6 = lean_box_uint64(x_5); +x_7 = lean_apply_2(x_2, x_4, x_6); +return x_7; +} +else +{ +lean_object* x_8; +lean_dec(x_2); +x_8 = lean_apply_1(x_3, x_1); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_6 = lean_apply_1(x_5, x_1); +return x_6; +} +else +{ +lean_object* x_7; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_apply_2(x_4, x_9, x_8); +return x_10; +} +case 1: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_ctor_get(x_7, 0); +lean_inc(x_12); +lean_dec(x_7); +x_13 = lean_apply_2(x_3, x_12, x_11); +return x_13; +} +case 2: +{ +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_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +lean_dec(x_1); +x_15 = lean_ctor_get(x_7, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); +x_17 = lean_ctor_get(x_7, 2); +lean_inc(x_17); +x_18 = lean_ctor_get(x_7, 3); +lean_inc(x_18); +lean_dec(x_7); +x_19 = lean_apply_5(x_2, x_15, x_16, x_17, x_18, x_14); +return x_19; +} +default: +{ +lean_object* x_20; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_20 = lean_apply_1(x_5, x_1); +return x_20; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__2___rarg), 5, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_6 = lean_apply_1(x_5, x_1); +return x_6; +} +else +{ +lean_object* x_7; +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_apply_2(x_4, x_9, x_8); +return x_10; +} +case 1: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_2); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_ctor_get(x_7, 0); +lean_inc(x_12); +lean_dec(x_7); +x_13 = lean_apply_2(x_3, x_12, x_11); +return x_13; +} +case 2: +{ +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_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_14 = lean_ctor_get(x_1, 1); +lean_inc(x_14); +lean_dec(x_1); +x_15 = lean_ctor_get(x_7, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); +x_17 = lean_ctor_get(x_7, 2); +lean_inc(x_17); +x_18 = lean_ctor_get(x_7, 3); +lean_inc(x_18); +lean_dec(x_7); +x_19 = lean_apply_5(x_2, x_15, x_16, x_17, x_18, x_14); +return x_19; +} +default: +{ +lean_object* x_20; +lean_dec(x_7); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_20 = lean_apply_1(x_5, x_1); +return x_20; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__3___rarg), 5, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__4___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__4(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__4___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__5___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__5(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor_match__5___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__1___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: { uint8_t x_10; @@ -13424,7 +16831,7 @@ return x_14; else { lean_object* x_15; lean_object* x_16; -x_15 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_26__hasRecursiveType), 6, 1); +x_15 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasRecursiveType), 6, 1); lean_closure_set(x_15, 0, x_2); x_16 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_15, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_16) == 0) @@ -13534,7 +16941,7 @@ return x_36; } } } -lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___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* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___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; uint8_t 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_33; @@ -13549,7 +16956,7 @@ lean_closure_set(x_13, 0, x_8); lean_closure_set(x_13, 1, x_9); lean_closure_set(x_13, 2, x_10); lean_closure_set(x_13, 3, x_12); -x_14 = lean_alloc_closure((void*)(l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__1___lambda__1), 9, 3); +x_14 = lean_alloc_closure((void*)(l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__1___lambda__1), 9, 3); lean_closure_set(x_14, 0, x_1); lean_closure_set(x_14, 1, x_2); lean_closure_set(x_14, 2, x_10); @@ -13695,7 +17102,7 @@ return x_31; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -13714,7 +17121,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_FVarSubst_apply(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -13728,7 +17135,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_FVarSubst_apply(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -13737,7 +17144,7 @@ return x_13; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(lean_object* x_1) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -13755,7 +17162,7 @@ if (x_3 == 0) lean_object* x_4; lean_object* x_5; lean_object* x_6; x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); -x_6 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(x_5); +x_6 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(x_5); if (lean_obj_tag(x_4) == 1) { lean_object* x_7; lean_object* x_8; @@ -13786,7 +17193,7 @@ x_11 = lean_ctor_get(x_1, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_1); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(x_11); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(x_11); if (lean_obj_tag(x_10) == 1) { lean_object* x_13; lean_object* x_14; lean_object* x_15; @@ -13814,7 +17221,7 @@ return x_17; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -13837,15 +17244,15 @@ x_9 = lean_ctor_get(x_2, 0); x_10 = lean_ctor_get(x_9, 1); x_11 = l_Array_toList___rarg(x_10); x_12 = lean_ctor_get(x_2, 1); -x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(x_11); +x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(x_11); lean_inc(x_12); x_14 = lean_alloc_ctor(2, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); -x_15 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_8, x_14, x_6); +x_15 = l_Lean_Meta_Match_Example_replaceFVarId(x_8, x_14, x_6); lean_dec(x_14); lean_dec(x_8); -x_16 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(x_1, x_2, x_7); +x_16 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(x_1, x_2, x_7); lean_ctor_set(x_3, 1, x_16); lean_ctor_set(x_3, 0, x_15); return x_3; @@ -13863,15 +17270,15 @@ x_20 = lean_ctor_get(x_2, 0); x_21 = lean_ctor_get(x_20, 1); x_22 = l_Array_toList___rarg(x_21); x_23 = lean_ctor_get(x_2, 1); -x_24 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__3(x_22); +x_24 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__3(x_22); 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_Lean_Meta_Match_Example_replaceFVarId___main(x_19, x_25, x_17); +x_26 = l_Lean_Meta_Match_Example_replaceFVarId(x_19, x_25, x_17); lean_dec(x_25); lean_dec(x_19); -x_27 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(x_1, x_2, x_18); +x_27 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(x_1, x_2, 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); @@ -13880,7 +17287,7 @@ return x_28; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -13900,8 +17307,8 @@ x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = lean_ctor_get(x_1, 0); x_8 = lean_ctor_get(x_7, 2); -x_9 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_8, x_5); -x_10 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(x_1, x_6); +x_9 = l_Lean_Meta_Match_Example_applyFVarSubst(x_8, x_5); +x_10 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(x_1, x_6); lean_ctor_set(x_2, 1, x_10); lean_ctor_set(x_2, 0, x_9); return x_2; @@ -13916,8 +17323,8 @@ lean_inc(x_11); lean_dec(x_2); x_13 = lean_ctor_get(x_1, 0); x_14 = lean_ctor_get(x_13, 2); -x_15 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_14, x_11); -x_16 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(x_1, x_12); +x_15 = l_Lean_Meta_Match_Example_applyFVarSubst(x_14, x_11); +x_16 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(x_1, x_12); x_17 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_17, 0, x_15); lean_ctor_set(x_17, 1, x_16); @@ -13926,7 +17333,7 @@ return x_17; } } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_2) == 0) @@ -14110,7 +17517,7 @@ goto _start; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -14129,7 +17536,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -14143,7 +17550,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -14152,7 +17559,28 @@ return x_13; } } } -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___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) { +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processConstructor"); +return x_1; +} +} +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1; +x_3 = lean_unsigned_to_nat(574u); +x_4 = lean_unsigned_to_nat(46u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___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) { _start: { if (lean_obj_tag(x_2) == 0) @@ -14187,30 +17615,31 @@ x_20 = lean_ctor_get(x_10, 4); lean_inc(x_20); if (lean_obj_tag(x_20) == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_dec(x_10); x_21 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_22 = l_unreachable_x21___rarg(x_21); +x_22 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2; +x_23 = lean_panic_fn(x_21, x_22); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_23 = lean_apply_5(x_22, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_23) == 0) +x_24 = lean_apply_5(x_23, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_24) == 0) { -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_24, 0); lean_inc(x_25); -lean_dec(x_23); -x_13 = x_24; -x_14 = x_25; +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_13 = x_25; +x_14 = x_26; goto block_19; } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -14219,58 +17648,58 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_26 = !lean_is_exclusive(x_23); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_24); +if (x_27 == 0) { -return x_23; +return x_24; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_23, 0); -x_28 = lean_ctor_get(x_23, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_24, 0); +x_29 = lean_ctor_get(x_24, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_23); -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_dec(x_24); +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 { -lean_object* x_30; -x_30 = lean_ctor_get(x_20, 0); -lean_inc(x_30); -switch (lean_obj_tag(x_30)) { -case 0: -{ lean_object* x_31; -lean_dec(x_30); +x_31 = lean_ctor_get(x_20, 0); +lean_inc(x_31); +switch (lean_obj_tag(x_31)) { +case 0: +{ +lean_object* x_32; +lean_dec(x_31); lean_dec(x_20); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_31 = l_Lean_Meta_Match_processInaccessibleAsCtor(x_10, x_1, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_31) == 0) +x_32 = l_Lean_Meta_Match_processInaccessibleAsCtor(x_10, x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_32) == 0) { -lean_object* x_32; lean_object* x_33; -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_31, 1); +lean_object* x_33; lean_object* x_34; +x_33 = lean_ctor_get(x_32, 0); lean_inc(x_33); -lean_dec(x_31); -x_13 = x_32; -x_14 = x_33; +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +x_13 = x_33; +x_14 = x_34; goto block_19; } else { -uint8_t x_34; +uint8_t x_35; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -14279,63 +17708,63 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_34 = !lean_is_exclusive(x_31); -if (x_34 == 0) +x_35 = !lean_is_exclusive(x_32); +if (x_35 == 0) { -return x_31; +return x_32; } else { -lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_35 = lean_ctor_get(x_31, 0); -x_36 = lean_ctor_get(x_31, 1); +lean_object* x_36; lean_object* x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_32, 0); +x_37 = lean_ctor_get(x_32, 1); +lean_inc(x_37); lean_inc(x_36); -lean_inc(x_35); -lean_dec(x_31); -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; +lean_dec(x_32); +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; } } } case 1: { -uint8_t x_38; -x_38 = !lean_is_exclusive(x_10); -if (x_38 == 0) +uint8_t x_39; +x_39 = !lean_is_exclusive(x_10); +if (x_39 == 0) { -lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_39 = lean_ctor_get(x_10, 4); -lean_dec(x_39); -x_40 = lean_ctor_get(x_20, 1); -lean_inc(x_40); -lean_dec(x_20); -x_41 = lean_ctor_get(x_30, 0); +lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; +x_40 = lean_ctor_get(x_10, 4); +lean_dec(x_40); +x_41 = lean_ctor_get(x_20, 1); lean_inc(x_41); -lean_dec(x_30); -lean_ctor_set(x_10, 4, x_40); +lean_dec(x_20); +x_42 = lean_ctor_get(x_31, 0); +lean_inc(x_42); +lean_dec(x_31); +lean_ctor_set(x_10, 4, x_41); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_42 = l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f(x_10, x_41, x_1, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_42) == 0) +x_43 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f(x_10, x_42, x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_43) == 0) { -lean_object* x_43; lean_object* x_44; -x_43 = lean_ctor_get(x_42, 0); -lean_inc(x_43); -x_44 = lean_ctor_get(x_42, 1); +lean_object* x_44; lean_object* x_45; +x_44 = lean_ctor_get(x_43, 0); lean_inc(x_44); -lean_dec(x_42); -x_13 = x_43; -x_14 = x_44; +x_45 = lean_ctor_get(x_43, 1); +lean_inc(x_45); +lean_dec(x_43); +x_13 = x_44; +x_14 = x_45; goto block_19; } else { -uint8_t x_45; +uint8_t x_46; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -14344,71 +17773,71 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_45 = !lean_is_exclusive(x_42); -if (x_45 == 0) +x_46 = !lean_is_exclusive(x_43); +if (x_46 == 0) { -return x_42; +return x_43; } else { -lean_object* x_46; lean_object* x_47; lean_object* x_48; -x_46 = lean_ctor_get(x_42, 0); -x_47 = lean_ctor_get(x_42, 1); +lean_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_43, 0); +x_48 = lean_ctor_get(x_43, 1); +lean_inc(x_48); lean_inc(x_47); -lean_inc(x_46); -lean_dec(x_42); -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_dec(x_43); +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 { -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_10, 0); -x_50 = lean_ctor_get(x_10, 1); -x_51 = lean_ctor_get(x_10, 2); -x_52 = lean_ctor_get(x_10, 3); +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_10, 0); +x_51 = lean_ctor_get(x_10, 1); +x_52 = lean_ctor_get(x_10, 2); +x_53 = lean_ctor_get(x_10, 3); +lean_inc(x_53); lean_inc(x_52); lean_inc(x_51); lean_inc(x_50); -lean_inc(x_49); lean_dec(x_10); -x_53 = lean_ctor_get(x_20, 1); -lean_inc(x_53); -lean_dec(x_20); -x_54 = lean_ctor_get(x_30, 0); +x_54 = lean_ctor_get(x_20, 1); lean_inc(x_54); -lean_dec(x_30); -x_55 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_55, 0, x_49); -lean_ctor_set(x_55, 1, x_50); -lean_ctor_set(x_55, 2, x_51); -lean_ctor_set(x_55, 3, x_52); -lean_ctor_set(x_55, 4, x_53); +lean_dec(x_20); +x_55 = lean_ctor_get(x_31, 0); +lean_inc(x_55); +lean_dec(x_31); +x_56 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_56, 0, x_50); +lean_ctor_set(x_56, 1, x_51); +lean_ctor_set(x_56, 2, x_52); +lean_ctor_set(x_56, 3, x_53); +lean_ctor_set(x_56, 4, x_54); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_56 = l___private_Lean_Meta_Match_Match_24__expandVarIntoCtor_x3f(x_55, x_54, x_1, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_56) == 0) +x_57 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f(x_56, x_55, x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_57) == 0) { -lean_object* x_57; lean_object* x_58; -x_57 = lean_ctor_get(x_56, 0); -lean_inc(x_57); -x_58 = lean_ctor_get(x_56, 1); +lean_object* x_58; lean_object* x_59; +x_58 = lean_ctor_get(x_57, 0); lean_inc(x_58); -lean_dec(x_56); -x_13 = x_57; -x_14 = x_58; +x_59 = lean_ctor_get(x_57, 1); +lean_inc(x_59); +lean_dec(x_57); +x_13 = x_58; +x_14 = x_59; goto block_19; } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -14417,112 +17846,113 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_59 = lean_ctor_get(x_56, 0); -lean_inc(x_59); -x_60 = lean_ctor_get(x_56, 1); +x_60 = lean_ctor_get(x_57, 0); lean_inc(x_60); -if (lean_is_exclusive(x_56)) { - lean_ctor_release(x_56, 0); - lean_ctor_release(x_56, 1); - x_61 = x_56; +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_56); - x_61 = lean_box(0); + lean_dec_ref(x_57); + x_62 = lean_box(0); } -if (lean_is_scalar(x_61)) { - x_62 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_62)) { + x_63 = lean_alloc_ctor(1, 2, 0); } else { - x_62 = x_61; + x_63 = x_62; } -lean_ctor_set(x_62, 0, x_59); -lean_ctor_set(x_62, 1, x_60); -return x_62; +lean_ctor_set(x_63, 0, x_60); +lean_ctor_set(x_63, 1, x_61); +return x_63; } } } case 2: { -uint8_t x_63; -x_63 = !lean_is_exclusive(x_10); -if (x_63 == 0) +uint8_t x_64; +x_64 = !lean_is_exclusive(x_10); +if (x_64 == 0) { -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; -x_64 = lean_ctor_get(x_10, 4); -lean_dec(x_64); -x_65 = lean_ctor_get(x_20, 1); -lean_inc(x_65); -lean_dec(x_20); -x_66 = lean_ctor_get(x_30, 3); +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_10, 4); +lean_dec(x_65); +x_66 = lean_ctor_get(x_20, 1); lean_inc(x_66); -lean_dec(x_30); -x_67 = l_List_append___rarg(x_66, x_65); -lean_ctor_set(x_10, 4, x_67); -x_68 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_68, 0, x_10); -x_13 = x_68; +lean_dec(x_20); +x_67 = lean_ctor_get(x_31, 3); +lean_inc(x_67); +lean_dec(x_31); +x_68 = l_List_append___rarg(x_67, x_66); +lean_ctor_set(x_10, 4, x_68); +x_69 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_69, 0, x_10); +x_13 = x_69; x_14 = x_8; goto block_19; } 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; -x_69 = lean_ctor_get(x_10, 0); -x_70 = lean_ctor_get(x_10, 1); -x_71 = lean_ctor_get(x_10, 2); -x_72 = lean_ctor_get(x_10, 3); +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_70 = lean_ctor_get(x_10, 0); +x_71 = lean_ctor_get(x_10, 1); +x_72 = lean_ctor_get(x_10, 2); +x_73 = lean_ctor_get(x_10, 3); +lean_inc(x_73); lean_inc(x_72); lean_inc(x_71); lean_inc(x_70); -lean_inc(x_69); lean_dec(x_10); -x_73 = lean_ctor_get(x_20, 1); -lean_inc(x_73); -lean_dec(x_20); -x_74 = lean_ctor_get(x_30, 3); +x_74 = lean_ctor_get(x_20, 1); lean_inc(x_74); -lean_dec(x_30); -x_75 = l_List_append___rarg(x_74, x_73); -x_76 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_76, 0, x_69); -lean_ctor_set(x_76, 1, x_70); -lean_ctor_set(x_76, 2, x_71); -lean_ctor_set(x_76, 3, x_72); -lean_ctor_set(x_76, 4, x_75); -x_77 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_77, 0, x_76); -x_13 = x_77; +lean_dec(x_20); +x_75 = lean_ctor_get(x_31, 3); +lean_inc(x_75); +lean_dec(x_31); +x_76 = l_List_append___rarg(x_75, x_74); +x_77 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_77, 0, x_70); +lean_ctor_set(x_77, 1, x_71); +lean_ctor_set(x_77, 2, x_72); +lean_ctor_set(x_77, 3, x_73); +lean_ctor_set(x_77, 4, x_76); +x_78 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_78, 0, x_77); +x_13 = x_78; x_14 = x_8; goto block_19; } } default: { -lean_object* x_78; lean_object* x_79; lean_object* x_80; -lean_dec(x_30); +lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +lean_dec(x_31); lean_dec(x_20); lean_dec(x_10); -x_78 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_79 = l_unreachable_x21___rarg(x_78); +x_79 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_80 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2; +x_81 = lean_panic_fn(x_79, x_80); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_80 = lean_apply_5(x_79, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_80) == 0) +x_82 = lean_apply_5(x_81, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_82) == 0) { -lean_object* x_81; lean_object* x_82; -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_13 = x_81; -x_14 = x_82; +lean_object* x_83; lean_object* x_84; +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_13 = x_83; +x_14 = x_84; goto block_19; } else { -uint8_t x_83; +uint8_t x_85; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -14531,23 +17961,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_83 = !lean_is_exclusive(x_80); -if (x_83 == 0) +x_85 = !lean_is_exclusive(x_82); +if (x_85 == 0) { -return x_80; +return x_82; } else { -lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_84 = lean_ctor_get(x_80, 0); -x_85 = lean_ctor_get(x_80, 1); -lean_inc(x_85); -lean_inc(x_84); -lean_dec(x_80); -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; +lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_86 = lean_ctor_get(x_82, 0); +x_87 = lean_ctor_get(x_82, 1); +lean_inc(x_87); +lean_inc(x_86); +lean_dec(x_82); +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; } } } @@ -14584,7 +18014,7 @@ goto _start; } } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___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, lean_object* x_10) { +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___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, lean_object* x_10) { _start: { lean_object* x_11; uint8_t x_12; @@ -14627,27 +18057,27 @@ x_23 = l_Array_toList___rarg(x_21); lean_dec(x_21); lean_inc(x_3); x_24 = l_List_append___rarg(x_23, x_3); -x_25 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(x_22, x_24); +x_25 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(x_22, x_24); x_26 = lean_ctor_get(x_18, 1); lean_inc(x_26); x_27 = lean_ctor_get(x_1, 3); lean_inc(x_27); -x_28 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(x_2, x_18, x_27); -x_29 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(x_18, x_28); +x_28 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(x_2, x_18, x_27); +x_29 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(x_18, x_28); lean_dec(x_18); x_30 = lean_ctor_get(x_1, 2); lean_inc(x_30); x_31 = lean_box(0); -x_32 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6(x_26, x_30, x_31); -x_33 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(x_22, x_32); +x_32 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6(x_26, x_30, x_31); +x_33 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(x_22, x_32); lean_dec(x_22); x_34 = l_List_reverse___rarg(x_33); -x_35 = lean_alloc_closure((void*)(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__8), 8, 3); +x_35 = lean_alloc_closure((void*)(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8), 8, 3); lean_closure_set(x_35, 0, x_26); lean_closure_set(x_35, 1, x_34); lean_closure_set(x_35, 2, x_31); lean_inc(x_20); -x_36 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_19__processAsPattern___lambda__1___boxed), 9, 3); +x_36 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___lambda__1___boxed), 9, 3); lean_closure_set(x_36, 0, x_20); lean_closure_set(x_36, 1, x_25); lean_closure_set(x_36, 2, x_29); @@ -14658,7 +18088,7 @@ lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_38 = l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__3___rarg(x_20, x_37, x_6, x_7, x_8, x_9, x_10); +x_38 = l_Lean_Meta_withMVarContext___at_Lean_Meta_revert___spec__5___rarg(x_20, x_37, x_6, x_7, x_8, x_9, x_10); if (lean_obj_tag(x_38) == 0) { lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; @@ -14710,7 +18140,20 @@ return x_49; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1; +x_3 = lean_unsigned_to_nat(535u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2() { _start: { lean_object* x_1; @@ -14718,299 +18161,499 @@ x_1 = lean_mk_string("constructor step"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor(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_2; -x_2 = l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3; -return x_2; -} -} -static lean_object* _init_l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1() { -_start: +lean_object* x_7; uint8_t x_51; lean_object* x_52; lean_object* x_62; lean_object* x_63; lean_object* x_64; uint8_t x_65; +x_62 = lean_st_ref_get(x_5, x_6); +x_63 = lean_ctor_get(x_62, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_63, 3); +lean_inc(x_64); +lean_dec(x_63); +x_65 = lean_ctor_get_uint8(x_64, sizeof(void*)*1); +lean_dec(x_64); +if (x_65 == 0) { -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___boxed), 1, 0); -return x_1; -} -} -lean_object* l___private_Lean_Meta_Match_Match_27__processConstructor(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; -x_7 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -x_8 = l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1; -x_9 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_7, x_8, x_2, x_3, x_4, x_5, x_6); -x_10 = lean_ctor_get(x_9, 1); -lean_inc(x_10); -lean_dec(x_9); -x_11 = lean_st_ref_get(x_5, x_10); -x_12 = lean_ctor_get(x_1, 1); -lean_inc(x_12); -if (lean_obj_tag(x_12) == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; -lean_dec(x_1); -x_13 = lean_ctor_get(x_11, 1); -lean_inc(x_13); -lean_dec(x_11); -x_14 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_15 = l_unreachable_x21___rarg(x_14); -x_16 = lean_apply_5(x_15, x_2, x_3, x_4, x_5, x_13); -return x_16; +lean_object* x_66; uint8_t x_67; +x_66 = lean_ctor_get(x_62, 1); +lean_inc(x_66); +lean_dec(x_62); +x_67 = 0; +x_51 = x_67; +x_52 = x_66; +goto block_61; } 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; -x_17 = lean_ctor_get(x_11, 1); +lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73; +x_68 = lean_ctor_get(x_62, 1); +lean_inc(x_68); +lean_dec(x_62); +x_69 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_70 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_69, x_2, x_3, x_4, x_5, x_68); +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_unbox(x_71); +lean_dec(x_71); +x_51 = x_73; +x_52 = x_72; +goto block_61; +} +block_50: +{ +lean_object* x_8; +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_1); +x_9 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1; +x_11 = lean_panic_fn(x_9, x_10); +x_12 = lean_apply_5(x_11, x_2, x_3, x_4, x_5, x_7); +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; +x_13 = lean_ctor_get(x_1, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_1, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_1, 3); +lean_inc(x_15); +x_16 = lean_ctor_get(x_8, 0); +lean_inc(x_16); +x_17 = lean_ctor_get(x_8, 1); lean_inc(x_17); -lean_dec(x_11); -x_18 = lean_ctor_get(x_1, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_1, 2); -lean_inc(x_19); -x_20 = lean_ctor_get(x_1, 3); -lean_inc(x_20); -x_21 = lean_ctor_get(x_12, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_12, 1); -lean_inc(x_22); -lean_dec(x_12); +lean_dec(x_8); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_21); +lean_inc(x_16); lean_inc(x_1); -x_23 = l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__1(x_1, x_21, x_2, x_3, x_4, x_5, x_17); -if (lean_obj_tag(x_23) == 0) +x_18 = l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__1(x_1, x_16, x_2, x_3, x_4, x_5, x_7); +if (lean_obj_tag(x_18) == 0) { -lean_object* x_24; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -if (lean_obj_tag(x_24) == 0) +lean_object* x_19; +x_19 = lean_ctor_get(x_18, 0); +lean_inc(x_19); +if (lean_obj_tag(x_19) == 0) { -uint8_t x_25; -lean_dec(x_21); +uint8_t x_20; +lean_dec(x_16); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_25 = !lean_is_exclusive(x_1); +x_20 = !lean_is_exclusive(x_1); +if (x_20 == 0) +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; +x_21 = lean_ctor_get(x_1, 3); +lean_dec(x_21); +x_22 = lean_ctor_get(x_1, 2); +lean_dec(x_22); +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_is_exclusive(x_18); if (x_25 == 0) { -lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_26 = lean_ctor_get(x_1, 3); +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_18, 0); lean_dec(x_26); -x_27 = lean_ctor_get(x_1, 2); -lean_dec(x_27); -x_28 = lean_ctor_get(x_1, 1); -lean_dec(x_28); -x_29 = lean_ctor_get(x_1, 0); -lean_dec(x_29); -x_30 = !lean_is_exclusive(x_23); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_23, 0); -lean_dec(x_31); -lean_ctor_set(x_1, 1, x_22); -x_32 = l_Lean_mkOptionalNode___closed__2; -x_33 = lean_array_push(x_32, x_1); -lean_ctor_set(x_23, 0, x_33); -return x_23; +lean_ctor_set(x_1, 1, x_17); +x_27 = l_Lean_mkOptionalNode___closed__2; +x_28 = lean_array_push(x_27, x_1); +lean_ctor_set(x_18, 0, x_28); +return x_18; } else { -lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_34 = lean_ctor_get(x_23, 1); -lean_inc(x_34); -lean_dec(x_23); -lean_ctor_set(x_1, 1, x_22); -x_35 = l_Lean_mkOptionalNode___closed__2; -x_36 = lean_array_push(x_35, 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_34); -return x_37; +lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_29 = lean_ctor_get(x_18, 1); +lean_inc(x_29); +lean_dec(x_18); +lean_ctor_set(x_1, 1, x_17); +x_30 = l_Lean_mkOptionalNode___closed__2; +x_31 = lean_array_push(x_30, x_1); +x_32 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_32, 0, x_31); +lean_ctor_set(x_32, 1, x_29); +return x_32; } } 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_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_dec(x_1); -x_38 = lean_ctor_get(x_23, 1); -lean_inc(x_38); -if (lean_is_exclusive(x_23)) { - lean_ctor_release(x_23, 0); - lean_ctor_release(x_23, 1); - x_39 = x_23; +x_33 = lean_ctor_get(x_18, 1); +lean_inc(x_33); +if (lean_is_exclusive(x_18)) { + lean_ctor_release(x_18, 0); + lean_ctor_release(x_18, 1); + x_34 = x_18; } else { - lean_dec_ref(x_23); - x_39 = lean_box(0); + lean_dec_ref(x_18); + x_34 = lean_box(0); } -x_40 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_40, 0, x_18); -lean_ctor_set(x_40, 1, x_22); -lean_ctor_set(x_40, 2, x_19); -lean_ctor_set(x_40, 3, x_20); -x_41 = l_Lean_mkOptionalNode___closed__2; -x_42 = lean_array_push(x_41, x_40); -if (lean_is_scalar(x_39)) { - x_43 = lean_alloc_ctor(0, 2, 0); +x_35 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_35, 0, x_13); +lean_ctor_set(x_35, 1, x_17); +lean_ctor_set(x_35, 2, x_14); +lean_ctor_set(x_35, 3, x_15); +x_36 = l_Lean_mkOptionalNode___closed__2; +x_37 = lean_array_push(x_36, x_35); +if (lean_is_scalar(x_34)) { + x_38 = lean_alloc_ctor(0, 2, 0); } else { - x_43 = x_39; + x_38 = x_34; } -lean_ctor_set(x_43, 0, x_42); -lean_ctor_set(x_43, 1, x_38); -return x_43; +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_33); +return x_38; } } 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_dec(x_20); -lean_dec(x_19); +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_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +x_39 = lean_ctor_get(x_18, 1); +lean_inc(x_39); lean_dec(x_18); -x_44 = lean_ctor_get(x_23, 1); -lean_inc(x_44); -lean_dec(x_23); -x_45 = lean_ctor_get(x_24, 0); -lean_inc(x_45); -lean_dec(x_24); -x_46 = x_45; -x_47 = lean_unsigned_to_nat(0u); -x_48 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__9___boxed), 10, 5); -lean_closure_set(x_48, 0, x_1); -lean_closure_set(x_48, 1, x_21); -lean_closure_set(x_48, 2, x_22); -lean_closure_set(x_48, 3, x_47); -lean_closure_set(x_48, 4, x_46); -x_49 = x_48; -x_50 = lean_apply_5(x_49, x_2, x_3, x_4, x_5, x_44); -return x_50; +x_40 = lean_ctor_get(x_19, 0); +lean_inc(x_40); +lean_dec(x_19); +x_41 = x_40; +x_42 = lean_unsigned_to_nat(0u); +x_43 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__9___boxed), 10, 5); +lean_closure_set(x_43, 0, x_1); +lean_closure_set(x_43, 1, x_16); +lean_closure_set(x_43, 2, x_17); +lean_closure_set(x_43, 3, x_42); +lean_closure_set(x_43, 4, x_41); +x_44 = x_43; +x_45 = lean_apply_5(x_44, x_2, x_3, x_4, x_5, x_39); +return x_45; } } else { -uint8_t x_51; -lean_dec(x_22); -lean_dec(x_21); -lean_dec(x_20); -lean_dec(x_19); -lean_dec(x_18); +uint8_t x_46; +lean_dec(x_17); +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); 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_23); -if (x_51 == 0) +x_46 = !lean_is_exclusive(x_18); +if (x_46 == 0) { -return x_23; +return x_18; } else { -lean_object* x_52; lean_object* x_53; lean_object* x_54; -x_52 = lean_ctor_get(x_23, 0); -x_53 = lean_ctor_get(x_23, 1); -lean_inc(x_53); -lean_inc(x_52); -lean_dec(x_23); -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_object* x_47; lean_object* x_48; lean_object* x_49; +x_47 = lean_ctor_get(x_18, 0); +x_48 = lean_ctor_get(x_18, 1); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_18); +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; } } } } +block_61: +{ +if (x_51 == 0) +{ +lean_object* x_53; lean_object* x_54; +x_53 = lean_st_ref_get(x_5, x_52); +x_54 = lean_ctor_get(x_53, 1); +lean_inc(x_54); +lean_dec(x_53); +x_7 = x_54; +goto block_50; } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +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; +x_55 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_56 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4; +x_57 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_55, x_56, x_2, x_3, x_4, x_5, x_52); +x_58 = lean_ctor_get(x_57, 1); +lean_inc(x_58); +lean_dec(x_57); +x_59 = lean_st_ref_get(x_5, x_58); +x_60 = lean_ctor_get(x_59, 1); +lean_inc(x_60); +lean_dec(x_59); +x_7 = x_60; +goto block_50; +} +} +} +} +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__2(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__4(x_1, x_2, x_3); +x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__4(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__5(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__5(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__6(x_1, x_2, x_3); +x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__6(x_1, x_2, x_3); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__7(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__7(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___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* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___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) { _start: { lean_object* x_11; -x_11 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_27__processConstructor___spec__9(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_11 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__9(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_object* l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_6; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_6 = lean_apply_1(x_5, x_1); +return x_6; +} +else +{ +lean_object* x_7; +lean_dec(x_5); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +switch (lean_obj_tag(x_7)) { +case 0: +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_dec(x_4); +lean_dec(x_2); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_ctor_get(x_7, 0); +lean_inc(x_9); +lean_dec(x_7); +x_10 = lean_apply_2(x_3, x_9, x_8); +return x_10; +} +case 2: +{ +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_dec(x_4); +lean_dec(x_3); +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +lean_dec(x_1); +x_12 = lean_ctor_get(x_7, 0); +lean_inc(x_12); +x_13 = lean_ctor_get(x_7, 1); +lean_inc(x_13); +x_14 = lean_ctor_get(x_7, 2); +lean_inc(x_14); +x_15 = lean_ctor_get(x_7, 3); +lean_inc(x_15); +lean_dec(x_7); +x_16 = lean_apply_5(x_2, x_12, x_13, x_14, x_15, x_11); +return x_16; +} +default: +{ +lean_object* x_17; lean_object* x_18; +lean_dec(x_3); +lean_dec(x_2); +x_17 = lean_ctor_get(x_1, 1); +lean_inc(x_17); +lean_dec(x_1); +x_18 = lean_apply_2(x_4, x_7, x_17); +return x_18; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1(x_1); -lean_dec(x_1); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__1___rarg), 5, 0); return x_2; } } -static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1() { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_2); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_3, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_3); +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); +x_8 = lean_ctor_get(x_6, 1); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_2, x_7, x_8); +return x_9; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__2___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable_match__3___rarg), 3, 0); +return x_2; +} +} +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processNonVariable"); +return x_1; +} +} +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1; +x_3 = lean_unsigned_to_nat(593u); +x_4 = lean_unsigned_to_nat(19u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3() { _start: { lean_object* x_1; @@ -15018,27 +18661,16 @@ x_1 = lean_mk_string("failed to compile pattern matching, inaccessible pattern o return x_1; } } -static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2() { +static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___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* l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___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_2) == 0) @@ -15073,30 +18705,31 @@ x_20 = lean_ctor_get(x_10, 4); lean_inc(x_20); if (lean_obj_tag(x_20) == 0) { -lean_object* x_21; lean_object* x_22; lean_object* x_23; +lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_dec(x_10); x_21 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_22 = l_unreachable_x21___rarg(x_21); +x_22 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__2; +x_23 = lean_panic_fn(x_21, x_22); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_23 = lean_apply_5(x_22, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_23) == 0) +x_24 = lean_apply_5(x_23, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_24) == 0) { -lean_object* x_24; lean_object* x_25; -x_24 = lean_ctor_get(x_23, 0); -lean_inc(x_24); -x_25 = lean_ctor_get(x_23, 1); +lean_object* x_25; lean_object* x_26; +x_25 = lean_ctor_get(x_24, 0); lean_inc(x_25); -lean_dec(x_23); -x_13 = x_24; -x_14 = x_25; +x_26 = lean_ctor_get(x_24, 1); +lean_inc(x_26); +lean_dec(x_24); +x_13 = x_25; +x_14 = x_26; goto block_19; } else { -uint8_t x_26; +uint8_t x_27; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -15105,77 +18738,62 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_26 = !lean_is_exclusive(x_23); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_24); +if (x_27 == 0) { -return x_23; +return x_24; } else { -lean_object* x_27; lean_object* x_28; lean_object* x_29; -x_27 = lean_ctor_get(x_23, 0); -x_28 = lean_ctor_get(x_23, 1); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_24, 0); +x_29 = lean_ctor_get(x_24, 1); +lean_inc(x_29); lean_inc(x_28); -lean_inc(x_27); -lean_dec(x_23); -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_dec(x_24); +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 { -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_30 = lean_ctor_get(x_10, 0); -lean_inc(x_30); -x_31 = lean_ctor_get(x_10, 1); +lean_object* x_31; +x_31 = lean_ctor_get(x_20, 0); lean_inc(x_31); -x_32 = lean_ctor_get(x_10, 2); -lean_inc(x_32); -x_33 = lean_ctor_get(x_10, 3); -lean_inc(x_33); -x_34 = lean_ctor_get(x_20, 0); -lean_inc(x_34); -x_35 = lean_ctor_get(x_20, 1); -lean_inc(x_35); -lean_dec(x_20); -switch (lean_obj_tag(x_34)) { +switch (lean_obj_tag(x_31)) { case 0: { -lean_object* x_47; lean_object* x_48; lean_object* x_49; -lean_dec(x_35); -lean_dec(x_34); -lean_dec(x_33); -lean_dec(x_32); +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_dec(x_31); -lean_dec(x_30); -x_47 = lean_ctor_get(x_1, 0); -lean_inc(x_47); -x_48 = lean_ctor_get(x_47, 0); -lean_inc(x_48); -lean_dec(x_47); +lean_dec(x_20); +x_32 = lean_ctor_get(x_1, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +lean_dec(x_32); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_49 = l_Lean_Meta_Match_processInaccessibleAsCtor(x_10, x_48, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_49) == 0) +x_34 = l_Lean_Meta_Match_processInaccessibleAsCtor(x_10, x_33, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_34) == 0) { -lean_object* x_50; lean_object* x_51; -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_13 = x_50; -x_14 = x_51; +lean_object* x_35; lean_object* x_36; +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_13 = x_35; +x_14 = x_36; goto block_19; } else { -uint8_t x_52; +uint8_t x_37; lean_dec(x_12); lean_dec(x_11); lean_dec(x_7); @@ -15184,127 +18802,137 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_52 = !lean_is_exclusive(x_49); -if (x_52 == 0) +x_37 = !lean_is_exclusive(x_34); +if (x_37 == 0) { -return x_49; +return x_34; } else { -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_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; +lean_object* x_38; lean_object* x_39; lean_object* x_40; +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(1, 2, 0); +lean_ctor_set(x_40, 0, x_38); +lean_ctor_set(x_40, 1, x_39); +return x_40; } } } case 2: { -uint8_t x_56; -x_56 = !lean_is_exclusive(x_10); -if (x_56 == 0) +uint8_t x_41; +x_41 = !lean_is_exclusive(x_10); +if (x_41 == 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; uint8_t x_66; -x_57 = lean_ctor_get(x_10, 4); -lean_dec(x_57); -x_58 = lean_ctor_get(x_10, 3); -lean_dec(x_58); -x_59 = lean_ctor_get(x_10, 2); -lean_dec(x_59); -x_60 = lean_ctor_get(x_10, 1); -lean_dec(x_60); -x_61 = lean_ctor_get(x_10, 0); -lean_dec(x_61); -x_62 = lean_ctor_get(x_34, 0); -lean_inc(x_62); -x_63 = lean_ctor_get(x_34, 3); -lean_inc(x_63); -lean_dec(x_34); -x_64 = lean_ctor_get(x_1, 0); -lean_inc(x_64); -x_65 = lean_ctor_get(x_64, 0); -lean_inc(x_65); -lean_dec(x_64); -x_66 = lean_name_eq(x_62, x_65); -lean_dec(x_65); -lean_dec(x_62); -if (x_66 == 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; lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_52; +x_42 = lean_ctor_get(x_10, 0); +x_43 = lean_ctor_get(x_10, 1); +x_44 = lean_ctor_get(x_10, 2); +x_45 = lean_ctor_get(x_10, 3); +x_46 = lean_ctor_get(x_10, 4); +lean_dec(x_46); +x_47 = lean_ctor_get(x_20, 1); +lean_inc(x_47); +lean_dec(x_20); +x_48 = lean_ctor_get(x_31, 0); +lean_inc(x_48); +x_49 = lean_ctor_get(x_31, 3); +lean_inc(x_49); +lean_dec(x_31); +x_50 = lean_ctor_get(x_1, 0); +lean_inc(x_50); +x_51 = lean_ctor_get(x_50, 0); +lean_inc(x_51); +lean_dec(x_50); +x_52 = lean_name_eq(x_48, x_51); +lean_dec(x_51); +lean_dec(x_48); +if (x_52 == 0) { -lean_object* x_67; -lean_dec(x_63); +lean_object* x_53; +lean_dec(x_49); +lean_dec(x_47); lean_free_object(x_10); -lean_dec(x_35); -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); -x_67 = lean_box(0); -x_13 = x_67; +lean_dec(x_45); +lean_dec(x_44); +lean_dec(x_43); +lean_dec(x_42); +x_53 = lean_box(0); +x_13 = x_53; x_14 = x_8; goto block_19; } else { -lean_object* x_68; lean_object* x_69; -x_68 = l_List_append___rarg(x_63, x_35); -lean_ctor_set(x_10, 4, x_68); -x_69 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_69, 0, x_10); -x_13 = x_69; +lean_object* x_54; lean_object* x_55; +x_54 = l_List_append___rarg(x_49, x_47); +lean_ctor_set(x_10, 4, x_54); +x_55 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_55, 0, x_10); +x_13 = x_55; x_14 = x_8; goto block_19; } } else { -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; uint8_t x_74; +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; +x_56 = lean_ctor_get(x_10, 0); +x_57 = lean_ctor_get(x_10, 1); +x_58 = lean_ctor_get(x_10, 2); +x_59 = lean_ctor_get(x_10, 3); +lean_inc(x_59); +lean_inc(x_58); +lean_inc(x_57); +lean_inc(x_56); lean_dec(x_10); -x_70 = lean_ctor_get(x_34, 0); -lean_inc(x_70); -x_71 = lean_ctor_get(x_34, 3); -lean_inc(x_71); -lean_dec(x_34); -x_72 = lean_ctor_get(x_1, 0); -lean_inc(x_72); -x_73 = lean_ctor_get(x_72, 0); -lean_inc(x_73); -lean_dec(x_72); -x_74 = lean_name_eq(x_70, x_73); -lean_dec(x_73); -lean_dec(x_70); -if (x_74 == 0) -{ -lean_object* x_75; -lean_dec(x_71); -lean_dec(x_35); -lean_dec(x_33); -lean_dec(x_32); +x_60 = lean_ctor_get(x_20, 1); +lean_inc(x_60); +lean_dec(x_20); +x_61 = lean_ctor_get(x_31, 0); +lean_inc(x_61); +x_62 = lean_ctor_get(x_31, 3); +lean_inc(x_62); lean_dec(x_31); -lean_dec(x_30); -x_75 = lean_box(0); -x_13 = x_75; +x_63 = lean_ctor_get(x_1, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_63, 0); +lean_inc(x_64); +lean_dec(x_63); +x_65 = lean_name_eq(x_61, x_64); +lean_dec(x_64); +lean_dec(x_61); +if (x_65 == 0) +{ +lean_object* x_66; +lean_dec(x_62); +lean_dec(x_60); +lean_dec(x_59); +lean_dec(x_58); +lean_dec(x_57); +lean_dec(x_56); +x_66 = lean_box(0); +x_13 = x_66; x_14 = x_8; goto block_19; } else { -lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_76 = l_List_append___rarg(x_71, x_35); -x_77 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_77, 0, x_30); -lean_ctor_set(x_77, 1, x_31); -lean_ctor_set(x_77, 2, x_32); -lean_ctor_set(x_77, 3, x_33); -lean_ctor_set(x_77, 4, x_76); -x_78 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_78, 0, x_77); -x_13 = x_78; +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = l_List_append___rarg(x_62, x_60); +x_68 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_68, 0, x_56); +lean_ctor_set(x_68, 1, x_57); +lean_ctor_set(x_68, 2, x_58); +lean_ctor_set(x_68, 3, x_59); +lean_ctor_set(x_68, 4, x_67); +x_69 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_69, 0, x_68); +x_13 = x_69; x_14 = x_8; goto block_19; } @@ -15312,54 +18940,46 @@ goto block_19; } default: { -lean_object* x_79; -lean_dec(x_35); -lean_dec(x_33); -lean_dec(x_32); -lean_dec(x_31); -lean_dec(x_30); +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_dec(x_20); lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); lean_dec(x_3); lean_dec(x_1); -x_79 = lean_box(0); -x_36 = x_79; -goto block_46; -} -} -block_46: -{ -lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; -lean_dec(x_36); -x_37 = l_Lean_Meta_Match_Pattern_toMessageData___main(x_34); -x_38 = l_Lean_indentD(x_37); -x_39 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3; -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_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_40, x_4, x_5, x_6, x_7, x_8); +x_70 = l_Lean_Meta_Match_Pattern_toMessageData(x_31); +x_71 = l_Lean_indentD(x_70); +x_72 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4; +x_73 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_71); +x_74 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_75 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_75, 0, x_73); +lean_ctor_set(x_75, 1, x_74); +x_76 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_75, 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); -x_42 = !lean_is_exclusive(x_41); -if (x_42 == 0) +x_77 = !lean_is_exclusive(x_76); +if (x_77 == 0) { -return x_41; +return x_76; } else { -lean_object* x_43; lean_object* x_44; lean_object* x_45; -x_43 = lean_ctor_get(x_41, 0); -x_44 = lean_ctor_get(x_41, 1); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_41); -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_object* x_78; lean_object* x_79; lean_object* x_80; +x_78 = lean_ctor_get(x_76, 0); +x_79 = lean_ctor_get(x_76, 1); +lean_inc(x_79); +lean_inc(x_78); +lean_dec(x_76); +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; +} } } } @@ -15394,7 +19014,7 @@ goto _start; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1() { _start: { lean_object* x_1; @@ -15402,27 +19022,16 @@ x_1 = lean_mk_string("failed to compile pattern matching, constructor expected") return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_28__processNonVariable___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___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; lean_object* x_15; @@ -15439,121 +19048,138 @@ lean_inc(x_5); x_15 = l_Lean_Expr_constructorApp_x3f(x_14, x_5); 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_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); x_16 = l_Lean_indentExpr(x_5); -x_17 = l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3; +x_17 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___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_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_18, x_6, x_7, x_8, x_9, x_13); +x_19 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +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_Meta_getArrayArgType___spec__3___rarg(x_20, 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); -return x_19; +return x_21; } 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_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_dec(x_5); -x_20 = lean_ctor_get(x_15, 0); -lean_inc(x_20); -lean_dec(x_15); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); +x_22 = lean_ctor_get(x_15, 0); lean_inc(x_22); -lean_dec(x_20); -x_23 = l_List_reverse___rarg(x_1); -x_24 = lean_box(0); -lean_inc(x_21); -x_25 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1(x_21, x_23, x_24, x_6, x_7, x_8, x_9, x_13); -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; 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_27 = lean_ctor_get(x_25, 0); -x_28 = lean_ctor_get(x_21, 3); -lean_inc(x_28); -lean_dec(x_21); -x_29 = lean_array_get_size(x_22); -x_30 = l_Array_extract___rarg(x_22, x_28, x_29); -x_31 = l_Array_toList___rarg(x_30); -lean_dec(x_30); -x_32 = l_List_append___rarg(x_31, x_2); -x_33 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_33, 0, x_3); -lean_ctor_set(x_33, 1, x_32); -lean_ctor_set(x_33, 2, x_27); -lean_ctor_set(x_33, 3, x_4); -lean_ctor_set(x_25, 0, x_33); -return x_25; -} -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; -x_34 = lean_ctor_get(x_25, 0); -x_35 = lean_ctor_get(x_25, 1); -lean_inc(x_35); -lean_inc(x_34); -lean_dec(x_25); -x_36 = lean_ctor_get(x_21, 3); -lean_inc(x_36); -lean_dec(x_21); -x_37 = lean_array_get_size(x_22); -x_38 = l_Array_extract___rarg(x_22, x_36, x_37); -x_39 = l_Array_toList___rarg(x_38); -lean_dec(x_38); -x_40 = l_List_append___rarg(x_39, x_2); -x_41 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_41, 0, x_3); -lean_ctor_set(x_41, 1, x_40); -lean_ctor_set(x_41, 2, x_34); -lean_ctor_set(x_41, 3, x_4); -x_42 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_42, 0, x_41); -lean_ctor_set(x_42, 1, x_35); -return x_42; -} -} -else -{ -uint8_t x_43; +lean_dec(x_15); +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_dec(x_21); +x_25 = l_List_reverse___rarg(x_1); +x_26 = lean_box(0); +lean_inc(x_23); +x_27 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1(x_23, x_25, x_26, x_6, x_7, x_8, x_9, x_13); +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; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_29 = lean_ctor_get(x_27, 0); +x_30 = lean_ctor_get(x_23, 3); +lean_inc(x_30); +lean_dec(x_23); +x_31 = lean_array_get_size(x_24); +x_32 = l_Array_extract___rarg(x_24, x_30, x_31); +x_33 = l_Array_toList___rarg(x_32); +lean_dec(x_32); +x_34 = l_List_append___rarg(x_33, x_2); +x_35 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_35, 0, x_3); +lean_ctor_set(x_35, 1, x_34); +lean_ctor_set(x_35, 2, x_29); +lean_ctor_set(x_35, 3, x_4); +lean_ctor_set(x_27, 0, x_35); +return x_27; +} +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_27, 0); +x_37 = lean_ctor_get(x_27, 1); +lean_inc(x_37); +lean_inc(x_36); +lean_dec(x_27); +x_38 = lean_ctor_get(x_23, 3); +lean_inc(x_38); +lean_dec(x_23); +x_39 = lean_array_get_size(x_24); +x_40 = l_Array_extract___rarg(x_24, x_38, x_39); +x_41 = l_Array_toList___rarg(x_40); +lean_dec(x_40); +x_42 = l_List_append___rarg(x_41, x_2); +x_43 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_43, 0, x_3); +lean_ctor_set(x_43, 1, x_42); +lean_ctor_set(x_43, 2, x_36); +lean_ctor_set(x_43, 3, x_4); +x_44 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_44, 0, x_43); +lean_ctor_set(x_44, 1, x_37); +return x_44; +} +} +else +{ +uint8_t x_45; +lean_dec(x_24); +lean_dec(x_23); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); -x_43 = !lean_is_exclusive(x_25); -if (x_43 == 0) +x_45 = !lean_is_exclusive(x_27); +if (x_45 == 0) { -return x_25; +return x_27; } else { -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_25, 0); -x_45 = lean_ctor_get(x_25, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_25); -x_46 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_45); -return x_46; +lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_46 = lean_ctor_get(x_27, 0); +x_47 = lean_ctor_get(x_27, 1); +lean_inc(x_47); +lean_inc(x_46); +lean_dec(x_27); +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* l___private_Lean_Meta_Match_Match_28__processNonVariable(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1; +x_3 = lean_unsigned_to_nat(579u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable(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; @@ -15561,43 +19187,91 @@ x_7 = lean_ctor_get(x_1, 1); lean_inc(x_7); if (lean_obj_tag(x_7) == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_dec(x_1); x_8 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_9 = l_unreachable_x21___rarg(x_8); -x_10 = lean_apply_5(x_9, x_2, x_3, x_4, x_5, x_6); -return x_10; +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1; +x_10 = lean_panic_fn(x_8, x_9); +x_11 = lean_apply_5(x_10, x_2, x_3, x_4, x_5, x_6); +return x_11; } 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; lean_object* x_19; -x_11 = lean_ctor_get(x_1, 0); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 2); +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_ctor_get(x_1, 0); lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 3); +x_13 = lean_ctor_get(x_1, 2); lean_inc(x_13); -x_14 = lean_ctor_get(x_7, 0); +x_14 = lean_ctor_get(x_1, 3); lean_inc(x_14); -x_15 = lean_ctor_get(x_7, 1); +x_15 = lean_ctor_get(x_7, 0); lean_inc(x_15); +x_16 = lean_ctor_get(x_7, 1); +lean_inc(x_16); lean_dec(x_7); -x_16 = lean_alloc_closure((void*)(l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1), 6, 1); -lean_closure_set(x_16, 0, x_14); -x_17 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1), 10, 4); -lean_closure_set(x_17, 0, x_12); -lean_closure_set(x_17, 1, x_15); -lean_closure_set(x_17, 2, x_11); -lean_closure_set(x_17, 3, x_13); -x_18 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); -lean_closure_set(x_18, 0, x_16); -lean_closure_set(x_18, 1, x_17); -x_19 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_18, x_2, x_3, x_4, x_5, x_6); -return x_19; +x_17 = lean_alloc_closure((void*)(l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2), 6, 1); +lean_closure_set(x_17, 0, x_15); +x_18 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1), 10, 4); +lean_closure_set(x_18, 0, x_13); +lean_closure_set(x_18, 1, x_16); +lean_closure_set(x_18, 2, x_12); +lean_closure_set(x_18, 3, x_14); +x_19 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); +lean_closure_set(x_19, 0, x_17); +lean_closure_set(x_19, 1, x_18); +x_20 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_19, x_2, x_3, x_4, x_5, x_6); +return x_20; } } } -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_29__collectValues___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 3) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -15666,7 +19340,7 @@ goto _start; } } } -lean_object* l___private_Lean_Meta_Match_Match_29__collectValues(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; @@ -15674,11 +19348,58 @@ x_2 = lean_ctor_get(x_1, 2); lean_inc(x_2); lean_dec(x_1); x_3 = l_Array_empty___closed__1; -x_4 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_29__collectValues___spec__1(x_3, x_2); +x_4 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues___spec__1(x_3, x_2); return x_4; } } -uint8_t l___private_Lean_Meta_Match_Match_30__isFirstPatternVar(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 1) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +lean_dec(x_5); +x_8 = lean_apply_2(x_2, x_7, x_6); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_5); +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar_match__1___rarg), 3, 0); +return x_2; +} +} +uint8_t l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar(lean_object* x_1) { _start: { lean_object* x_2; @@ -15708,17 +19429,182 @@ return x_6; } } } -lean_object* l___private_Lean_Meta_Match_Match_30__isFirstPatternVar___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar___boxed(lean_object* x_1) { _start: { uint8_t x_2; lean_object* x_3; -x_2 = l___private_Lean_Meta_Match_Match_30__isFirstPatternVar(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar(x_1); lean_dec(x_1); x_3 = lean_box(x_2); return x_3; } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 3: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +x_12 = lean_apply_2(x_2, x_11, x_10); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_4, x_1); +return x_13; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__1___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__2___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 3: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +lean_dec(x_6); +x_12 = lean_apply_2(x_2, x_11, x_10); +return x_12; +} +default: +{ +lean_object* x_13; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_13 = lean_apply_1(x_4, x_1); +return x_13; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__2___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue_match__3___rarg), 3, 0); +return x_2; +} +} +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_1) == 0) @@ -15736,7 +19622,7 @@ if (x_4 == 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, 1); -x_7 = l___private_Lean_Meta_Match_Match_30__isFirstPatternVar(x_5); +x_7 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar(x_5); if (x_7 == 0) { lean_free_object(x_1); @@ -15764,7 +19650,7 @@ x_11 = lean_ctor_get(x_1, 1); lean_inc(x_11); lean_inc(x_10); lean_dec(x_1); -x_12 = l___private_Lean_Meta_Match_Match_30__isFirstPatternVar(x_10); +x_12 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isFirstPatternVar(x_10); if (x_12 == 0) { lean_dec(x_10); @@ -15785,7 +19671,7 @@ goto _start; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { _start: { if (lean_obj_tag(x_5) == 0) @@ -15805,16 +19691,16 @@ lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_o x_8 = lean_ctor_get(x_5, 0); x_9 = lean_ctor_get(x_5, 1); lean_inc(x_1); -x_10 = l___private_Lean_Meta_Match_Match_29__collectValues(x_1); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues(x_1); x_11 = l_Lean_Expr_fvarId_x21(x_2); x_12 = lean_array_fget(x_10, x_3); lean_dec(x_10); x_13 = lean_alloc_ctor(3, 1, 0); lean_ctor_set(x_13, 0, x_12); -x_14 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_11, x_13, x_8); +x_14 = l_Lean_Meta_Match_Example_replaceFVarId(x_11, x_13, x_8); lean_dec(x_13); lean_dec(x_11); -x_15 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(x_1, x_2, x_3, lean_box(0), x_9); +x_15 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(x_1, x_2, x_3, lean_box(0), x_9); lean_ctor_set(x_5, 1, x_15); lean_ctor_set(x_5, 0, x_14); return x_5; @@ -15828,16 +19714,16 @@ lean_inc(x_17); lean_inc(x_16); lean_dec(x_5); lean_inc(x_1); -x_18 = l___private_Lean_Meta_Match_Match_29__collectValues(x_1); +x_18 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues(x_1); x_19 = l_Lean_Expr_fvarId_x21(x_2); x_20 = lean_array_fget(x_18, x_3); lean_dec(x_18); x_21 = lean_alloc_ctor(3, 1, 0); lean_ctor_set(x_21, 0, x_20); -x_22 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_19, x_21, x_16); +x_22 = l_Lean_Meta_Match_Example_replaceFVarId(x_19, x_21, x_16); lean_dec(x_21); lean_dec(x_19); -x_23 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(x_1, x_2, x_3, lean_box(0), x_17); +x_23 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(x_1, x_2, x_3, lean_box(0), x_17); x_24 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_24, 0, x_22); lean_ctor_set(x_24, 1, x_23); @@ -15846,7 +19732,7 @@ return x_24; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -15865,8 +19751,8 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_obj x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = lean_ctor_get(x_1, 2); -x_8 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_7, x_5); -x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(x_1, x_6); +x_8 = l_Lean_Meta_Match_Example_applyFVarSubst(x_7, x_5); +x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(x_1, x_6); lean_ctor_set(x_2, 1, x_9); lean_ctor_set(x_2, 0, x_8); return x_2; @@ -15880,8 +19766,8 @@ lean_inc(x_11); lean_inc(x_10); lean_dec(x_2); x_12 = lean_ctor_get(x_1, 2); -x_13 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_12, x_10); -x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(x_1, x_11); +x_13 = l_Lean_Meta_Match_Example_applyFVarSubst(x_12, x_10); +x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(x_1, x_11); x_15 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_15, 0, x_13); lean_ctor_set(x_15, 1, x_14); @@ -15890,7 +19776,7 @@ return x_15; } } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_2) == 0) @@ -16047,7 +19933,7 @@ goto _start; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -16066,7 +19952,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -16080,7 +19966,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -16089,7 +19975,28 @@ return x_13; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(lean_object* x_1, lean_object* x_2) { +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processValue"); +return x_1; +} +} +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1; +x_3 = lean_unsigned_to_nat(633u); +x_4 = lean_unsigned_to_nat(16u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -16118,129 +20025,132 @@ x_10 = lean_ctor_get(x_5, 2); x_11 = lean_ctor_get(x_5, 3); x_12 = lean_ctor_get(x_5, 4); lean_inc(x_1); -x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(x_1, x_7); +x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(x_1, x_7); if (lean_obj_tag(x_12) == 0) { -lean_object* x_14; lean_object* x_15; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_free_object(x_5); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_1); -x_14 = l_Lean_Meta_Match_Alt_Inhabited; -x_15 = l_unreachable_x21___rarg(x_14); +x_14 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_15 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_16 = lean_panic_fn(x_14, x_15); lean_ctor_set(x_2, 1, x_13); -lean_ctor_set(x_2, 0, x_15); +lean_ctor_set(x_2, 0, x_16); return x_2; } else { -lean_object* x_16; +lean_object* x_17; lean_free_object(x_2); -x_16 = lean_ctor_get(x_12, 0); -lean_inc(x_16); -switch (lean_obj_tag(x_16)) { +x_17 = lean_ctor_get(x_12, 0); +lean_inc(x_17); +switch (lean_obj_tag(x_17)) { case 1: { -uint8_t x_17; -x_17 = !lean_is_exclusive(x_12); -if (x_17 == 0) +uint8_t x_18; +x_18 = !lean_is_exclusive(x_12); +if (x_18 == 0) { -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_18 = lean_ctor_get(x_12, 1); -x_19 = lean_ctor_get(x_12, 0); -lean_dec(x_19); -x_20 = lean_ctor_get(x_16, 0); -lean_inc(x_20); -lean_dec(x_16); -lean_ctor_set(x_5, 4, x_18); -x_21 = l_Lean_Meta_Match_Alt_replaceFVarId(x_20, x_1, x_5); +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_19 = lean_ctor_get(x_12, 1); +x_20 = lean_ctor_get(x_12, 0); +lean_dec(x_20); +x_21 = lean_ctor_get(x_17, 0); +lean_inc(x_21); +lean_dec(x_17); +lean_ctor_set(x_5, 4, x_19); +x_22 = l_Lean_Meta_Match_Alt_replaceFVarId(x_21, x_1, x_5); lean_ctor_set(x_12, 1, x_13); -lean_ctor_set(x_12, 0, x_21); +lean_ctor_set(x_12, 0, x_22); return x_12; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_22 = lean_ctor_get(x_12, 1); -lean_inc(x_22); -lean_dec(x_12); -x_23 = lean_ctor_get(x_16, 0); +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_23 = lean_ctor_get(x_12, 1); lean_inc(x_23); -lean_dec(x_16); -lean_ctor_set(x_5, 4, x_22); -x_24 = l_Lean_Meta_Match_Alt_replaceFVarId(x_23, x_1, x_5); -x_25 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_13); -return x_25; +lean_dec(x_12); +x_24 = lean_ctor_get(x_17, 0); +lean_inc(x_24); +lean_dec(x_17); +lean_ctor_set(x_5, 4, x_23); +x_25 = l_Lean_Meta_Match_Alt_replaceFVarId(x_24, x_1, x_5); +x_26 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_26, 0, x_25); +lean_ctor_set(x_26, 1, x_13); +return x_26; } } case 3: { -uint8_t x_26; -lean_dec(x_16); +uint8_t x_27; +lean_dec(x_17); lean_dec(x_1); -x_26 = !lean_is_exclusive(x_12); -if (x_26 == 0) +x_27 = !lean_is_exclusive(x_12); +if (x_27 == 0) { -lean_object* x_27; lean_object* x_28; -x_27 = lean_ctor_get(x_12, 1); -x_28 = lean_ctor_get(x_12, 0); -lean_dec(x_28); -lean_ctor_set(x_5, 4, x_27); +lean_object* x_28; lean_object* x_29; +x_28 = lean_ctor_get(x_12, 1); +x_29 = lean_ctor_get(x_12, 0); +lean_dec(x_29); +lean_ctor_set(x_5, 4, x_28); lean_ctor_set(x_12, 1, x_13); lean_ctor_set(x_12, 0, x_5); return x_12; } else { -lean_object* x_29; lean_object* x_30; -x_29 = lean_ctor_get(x_12, 1); -lean_inc(x_29); +lean_object* x_30; lean_object* x_31; +x_30 = lean_ctor_get(x_12, 1); +lean_inc(x_30); lean_dec(x_12); -lean_ctor_set(x_5, 4, x_29); -x_30 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_30, 0, x_5); -lean_ctor_set(x_30, 1, x_13); -return x_30; +lean_ctor_set(x_5, 4, x_30); +x_31 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_31, 0, x_5); +lean_ctor_set(x_31, 1, x_13); +return x_31; } } default: { -uint8_t x_31; -lean_dec(x_16); +uint8_t x_32; +lean_dec(x_17); lean_free_object(x_5); lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_1); -x_31 = !lean_is_exclusive(x_12); -if (x_31 == 0) +x_32 = !lean_is_exclusive(x_12); +if (x_32 == 0) { -lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_32 = lean_ctor_get(x_12, 1); -lean_dec(x_32); -x_33 = lean_ctor_get(x_12, 0); +lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_33 = lean_ctor_get(x_12, 1); lean_dec(x_33); -x_34 = l_Lean_Meta_Match_Alt_Inhabited; -x_35 = l_unreachable_x21___rarg(x_34); +x_34 = lean_ctor_get(x_12, 0); +lean_dec(x_34); +x_35 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_36 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_37 = lean_panic_fn(x_35, x_36); lean_ctor_set(x_12, 1, x_13); -lean_ctor_set(x_12, 0, x_35); +lean_ctor_set(x_12, 0, x_37); return x_12; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_dec(x_12); -x_36 = l_Lean_Meta_Match_Alt_Inhabited; -x_37 = l_unreachable_x21___rarg(x_36); -x_38 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_13); -return x_38; +x_38 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_39 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_40 = lean_panic_fn(x_38, x_39); +x_41 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_41, 0, x_40); +lean_ctor_set(x_41, 1, x_13); +return x_41; } } } @@ -16248,287 +20158,291 @@ 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; -x_39 = lean_ctor_get(x_2, 1); -x_40 = lean_ctor_get(x_5, 0); -x_41 = lean_ctor_get(x_5, 1); -x_42 = lean_ctor_get(x_5, 2); -x_43 = lean_ctor_get(x_5, 3); -x_44 = lean_ctor_get(x_5, 4); +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_2, 1); +x_43 = lean_ctor_get(x_5, 0); +x_44 = lean_ctor_get(x_5, 1); +x_45 = lean_ctor_get(x_5, 2); +x_46 = lean_ctor_get(x_5, 3); +x_47 = lean_ctor_get(x_5, 4); +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_inc(x_40); lean_dec(x_5); lean_inc(x_1); -x_45 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(x_1, x_39); -if (lean_obj_tag(x_44) == 0) +x_48 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(x_1, x_42); +if (lean_obj_tag(x_47) == 0) { -lean_object* x_46; lean_object* x_47; +lean_object* x_49; lean_object* x_50; lean_object* x_51; +lean_dec(x_46); +lean_dec(x_45); +lean_dec(x_44); lean_dec(x_43); -lean_dec(x_42); -lean_dec(x_41); -lean_dec(x_40); lean_dec(x_1); -x_46 = l_Lean_Meta_Match_Alt_Inhabited; -x_47 = l_unreachable_x21___rarg(x_46); -lean_ctor_set(x_2, 1, x_45); -lean_ctor_set(x_2, 0, x_47); +x_49 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_50 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_51 = lean_panic_fn(x_49, x_50); +lean_ctor_set(x_2, 1, x_48); +lean_ctor_set(x_2, 0, x_51); return x_2; } else { -lean_object* x_48; +lean_object* x_52; lean_free_object(x_2); -x_48 = lean_ctor_get(x_44, 0); -lean_inc(x_48); -switch (lean_obj_tag(x_48)) { +x_52 = lean_ctor_get(x_47, 0); +lean_inc(x_52); +switch (lean_obj_tag(x_52)) { case 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; -x_49 = lean_ctor_get(x_44, 1); -lean_inc(x_49); -if (lean_is_exclusive(x_44)) { - lean_ctor_release(x_44, 0); - lean_ctor_release(x_44, 1); - x_50 = x_44; +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_47, 1); +lean_inc(x_53); +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + x_54 = x_47; } else { - lean_dec_ref(x_44); - x_50 = lean_box(0); + lean_dec_ref(x_47); + x_54 = lean_box(0); } -x_51 = lean_ctor_get(x_48, 0); -lean_inc(x_51); -lean_dec(x_48); -x_52 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_52, 0, x_40); -lean_ctor_set(x_52, 1, x_41); -lean_ctor_set(x_52, 2, x_42); -lean_ctor_set(x_52, 3, x_43); -lean_ctor_set(x_52, 4, x_49); -x_53 = l_Lean_Meta_Match_Alt_replaceFVarId(x_51, x_1, x_52); -if (lean_is_scalar(x_50)) { - x_54 = lean_alloc_ctor(1, 2, 0); -} else { - x_54 = x_50; -} -lean_ctor_set(x_54, 0, x_53); -lean_ctor_set(x_54, 1, x_45); -return x_54; -} -case 3: -{ -lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; -lean_dec(x_48); -lean_dec(x_1); -x_55 = lean_ctor_get(x_44, 1); +x_55 = lean_ctor_get(x_52, 0); lean_inc(x_55); -if (lean_is_exclusive(x_44)) { - lean_ctor_release(x_44, 0); - lean_ctor_release(x_44, 1); - x_56 = x_44; -} else { - lean_dec_ref(x_44); - x_56 = lean_box(0); -} -x_57 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_57, 0, x_40); -lean_ctor_set(x_57, 1, x_41); -lean_ctor_set(x_57, 2, x_42); -lean_ctor_set(x_57, 3, x_43); -lean_ctor_set(x_57, 4, x_55); -if (lean_is_scalar(x_56)) { +lean_dec(x_52); +x_56 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_56, 0, x_43); +lean_ctor_set(x_56, 1, x_44); +lean_ctor_set(x_56, 2, x_45); +lean_ctor_set(x_56, 3, x_46); +lean_ctor_set(x_56, 4, x_53); +x_57 = l_Lean_Meta_Match_Alt_replaceFVarId(x_55, x_1, x_56); +if (lean_is_scalar(x_54)) { x_58 = lean_alloc_ctor(1, 2, 0); } else { - x_58 = x_56; + x_58 = x_54; } lean_ctor_set(x_58, 0, x_57); -lean_ctor_set(x_58, 1, x_45); +lean_ctor_set(x_58, 1, x_48); return x_58; } -default: -{ -lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; -lean_dec(x_48); -lean_dec(x_43); -lean_dec(x_42); -lean_dec(x_41); -lean_dec(x_40); -lean_dec(x_1); -if (lean_is_exclusive(x_44)) { - lean_ctor_release(x_44, 0); - lean_ctor_release(x_44, 1); - x_59 = x_44; -} else { - lean_dec_ref(x_44); - x_59 = lean_box(0); -} -x_60 = l_Lean_Meta_Match_Alt_Inhabited; -x_61 = l_unreachable_x21___rarg(x_60); -if (lean_is_scalar(x_59)) { - x_62 = lean_alloc_ctor(1, 2, 0); -} else { - x_62 = x_59; -} -lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_45); -return x_62; -} -} -} -} -} -else -{ -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_63 = lean_ctor_get(x_2, 0); -x_64 = lean_ctor_get(x_2, 1); -lean_inc(x_64); -lean_inc(x_63); -lean_dec(x_2); -x_65 = lean_ctor_get(x_63, 0); -lean_inc(x_65); -x_66 = lean_ctor_get(x_63, 1); -lean_inc(x_66); -x_67 = lean_ctor_get(x_63, 2); -lean_inc(x_67); -x_68 = lean_ctor_get(x_63, 3); -lean_inc(x_68); -x_69 = lean_ctor_get(x_63, 4); -lean_inc(x_69); -if (lean_is_exclusive(x_63)) { - lean_ctor_release(x_63, 0); - lean_ctor_release(x_63, 1); - lean_ctor_release(x_63, 2); - lean_ctor_release(x_63, 3); - lean_ctor_release(x_63, 4); - x_70 = x_63; -} else { - lean_dec_ref(x_63); - x_70 = lean_box(0); -} -lean_inc(x_1); -x_71 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(x_1, x_64); -if (lean_obj_tag(x_69) == 0) -{ -lean_object* x_72; lean_object* x_73; lean_object* x_74; -lean_dec(x_70); -lean_dec(x_68); -lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_65); -lean_dec(x_1); -x_72 = l_Lean_Meta_Match_Alt_Inhabited; -x_73 = l_unreachable_x21___rarg(x_72); -x_74 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_74, 0, x_73); -lean_ctor_set(x_74, 1, x_71); -return x_74; -} -else -{ -lean_object* x_75; -x_75 = lean_ctor_get(x_69, 0); -lean_inc(x_75); -switch (lean_obj_tag(x_75)) { -case 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; -x_76 = lean_ctor_get(x_69, 1); -lean_inc(x_76); -if (lean_is_exclusive(x_69)) { - lean_ctor_release(x_69, 0); - lean_ctor_release(x_69, 1); - x_77 = x_69; -} else { - lean_dec_ref(x_69); - x_77 = lean_box(0); -} -x_78 = lean_ctor_get(x_75, 0); -lean_inc(x_78); -lean_dec(x_75); -if (lean_is_scalar(x_70)) { - x_79 = lean_alloc_ctor(0, 5, 0); -} else { - x_79 = x_70; -} -lean_ctor_set(x_79, 0, x_65); -lean_ctor_set(x_79, 1, x_66); -lean_ctor_set(x_79, 2, x_67); -lean_ctor_set(x_79, 3, x_68); -lean_ctor_set(x_79, 4, x_76); -x_80 = l_Lean_Meta_Match_Alt_replaceFVarId(x_78, x_1, x_79); -if (lean_is_scalar(x_77)) { - x_81 = lean_alloc_ctor(1, 2, 0); -} else { - x_81 = x_77; -} -lean_ctor_set(x_81, 0, x_80); -lean_ctor_set(x_81, 1, x_71); -return x_81; -} case 3: { -lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; -lean_dec(x_75); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +lean_dec(x_52); lean_dec(x_1); -x_82 = lean_ctor_get(x_69, 1); -lean_inc(x_82); -if (lean_is_exclusive(x_69)) { - lean_ctor_release(x_69, 0); - lean_ctor_release(x_69, 1); - x_83 = x_69; +x_59 = lean_ctor_get(x_47, 1); +lean_inc(x_59); +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + x_60 = x_47; } else { - lean_dec_ref(x_69); - x_83 = lean_box(0); + lean_dec_ref(x_47); + x_60 = lean_box(0); } -if (lean_is_scalar(x_70)) { - x_84 = lean_alloc_ctor(0, 5, 0); +x_61 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_61, 0, x_43); +lean_ctor_set(x_61, 1, x_44); +lean_ctor_set(x_61, 2, x_45); +lean_ctor_set(x_61, 3, x_46); +lean_ctor_set(x_61, 4, x_59); +if (lean_is_scalar(x_60)) { + x_62 = lean_alloc_ctor(1, 2, 0); } else { - x_84 = x_70; + x_62 = x_60; } -lean_ctor_set(x_84, 0, x_65); -lean_ctor_set(x_84, 1, x_66); -lean_ctor_set(x_84, 2, x_67); -lean_ctor_set(x_84, 3, x_68); -lean_ctor_set(x_84, 4, x_82); -if (lean_is_scalar(x_83)) { - x_85 = lean_alloc_ctor(1, 2, 0); -} else { - x_85 = x_83; -} -lean_ctor_set(x_85, 0, x_84); -lean_ctor_set(x_85, 1, x_71); -return x_85; +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_48); +return x_62; } default: { -lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; -lean_dec(x_75); -lean_dec(x_70); -lean_dec(x_68); -lean_dec(x_67); -lean_dec(x_66); -lean_dec(x_65); +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_dec(x_52); +lean_dec(x_46); +lean_dec(x_45); +lean_dec(x_44); +lean_dec(x_43); lean_dec(x_1); -if (lean_is_exclusive(x_69)) { - lean_ctor_release(x_69, 0); - lean_ctor_release(x_69, 1); - x_86 = x_69; +if (lean_is_exclusive(x_47)) { + lean_ctor_release(x_47, 0); + lean_ctor_release(x_47, 1); + x_63 = x_47; } else { - lean_dec_ref(x_69); - x_86 = lean_box(0); + lean_dec_ref(x_47); + x_63 = lean_box(0); } -x_87 = l_Lean_Meta_Match_Alt_Inhabited; -x_88 = l_unreachable_x21___rarg(x_87); -if (lean_is_scalar(x_86)) { - x_89 = lean_alloc_ctor(1, 2, 0); +x_64 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_65 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_66 = lean_panic_fn(x_64, x_65); +if (lean_is_scalar(x_63)) { + x_67 = lean_alloc_ctor(1, 2, 0); } else { - x_89 = x_86; + x_67 = x_63; } -lean_ctor_set(x_89, 0, x_88); -lean_ctor_set(x_89, 1, x_71); -return x_89; +lean_ctor_set(x_67, 0, x_66); +lean_ctor_set(x_67, 1, x_48); +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; +x_68 = lean_ctor_get(x_2, 0); +x_69 = lean_ctor_get(x_2, 1); +lean_inc(x_69); +lean_inc(x_68); +lean_dec(x_2); +x_70 = lean_ctor_get(x_68, 0); +lean_inc(x_70); +x_71 = lean_ctor_get(x_68, 1); +lean_inc(x_71); +x_72 = lean_ctor_get(x_68, 2); +lean_inc(x_72); +x_73 = lean_ctor_get(x_68, 3); +lean_inc(x_73); +x_74 = lean_ctor_get(x_68, 4); +lean_inc(x_74); +if (lean_is_exclusive(x_68)) { + lean_ctor_release(x_68, 0); + lean_ctor_release(x_68, 1); + lean_ctor_release(x_68, 2); + lean_ctor_release(x_68, 3); + lean_ctor_release(x_68, 4); + x_75 = x_68; +} else { + lean_dec_ref(x_68); + x_75 = lean_box(0); +} +lean_inc(x_1); +x_76 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(x_1, x_69); +if (lean_obj_tag(x_74) == 0) +{ +lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +lean_dec(x_75); +lean_dec(x_73); +lean_dec(x_72); +lean_dec(x_71); +lean_dec(x_70); +lean_dec(x_1); +x_77 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_78 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_79 = lean_panic_fn(x_77, x_78); +x_80 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_80, 0, x_79); +lean_ctor_set(x_80, 1, x_76); +return x_80; +} +else +{ +lean_object* x_81; +x_81 = lean_ctor_get(x_74, 0); +lean_inc(x_81); +switch (lean_obj_tag(x_81)) { +case 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; +x_82 = lean_ctor_get(x_74, 1); +lean_inc(x_82); +if (lean_is_exclusive(x_74)) { + lean_ctor_release(x_74, 0); + lean_ctor_release(x_74, 1); + x_83 = x_74; +} else { + lean_dec_ref(x_74); + x_83 = lean_box(0); +} +x_84 = lean_ctor_get(x_81, 0); +lean_inc(x_84); +lean_dec(x_81); +if (lean_is_scalar(x_75)) { + x_85 = lean_alloc_ctor(0, 5, 0); +} else { + x_85 = x_75; +} +lean_ctor_set(x_85, 0, x_70); +lean_ctor_set(x_85, 1, x_71); +lean_ctor_set(x_85, 2, x_72); +lean_ctor_set(x_85, 3, x_73); +lean_ctor_set(x_85, 4, x_82); +x_86 = l_Lean_Meta_Match_Alt_replaceFVarId(x_84, x_1, x_85); +if (lean_is_scalar(x_83)) { + x_87 = lean_alloc_ctor(1, 2, 0); +} else { + x_87 = x_83; +} +lean_ctor_set(x_87, 0, x_86); +lean_ctor_set(x_87, 1, x_76); +return x_87; +} +case 3: +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_dec(x_81); +lean_dec(x_1); +x_88 = lean_ctor_get(x_74, 1); +lean_inc(x_88); +if (lean_is_exclusive(x_74)) { + lean_ctor_release(x_74, 0); + lean_ctor_release(x_74, 1); + x_89 = x_74; +} else { + lean_dec_ref(x_74); + x_89 = lean_box(0); +} +if (lean_is_scalar(x_75)) { + x_90 = lean_alloc_ctor(0, 5, 0); +} else { + x_90 = x_75; +} +lean_ctor_set(x_90, 0, x_70); +lean_ctor_set(x_90, 1, x_71); +lean_ctor_set(x_90, 2, x_72); +lean_ctor_set(x_90, 3, x_73); +lean_ctor_set(x_90, 4, x_88); +if (lean_is_scalar(x_89)) { + x_91 = lean_alloc_ctor(1, 2, 0); +} else { + x_91 = x_89; +} +lean_ctor_set(x_91, 0, x_90); +lean_ctor_set(x_91, 1, x_76); +return x_91; +} +default: +{ +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; +lean_dec(x_81); +lean_dec(x_75); +lean_dec(x_73); +lean_dec(x_72); +lean_dec(x_71); +lean_dec(x_70); +lean_dec(x_1); +if (lean_is_exclusive(x_74)) { + lean_ctor_release(x_74, 0); + lean_ctor_release(x_74, 1); + x_92 = x_74; +} else { + lean_dec_ref(x_74); + x_92 = lean_box(0); +} +x_93 = l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2; +x_94 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2; +x_95 = lean_panic_fn(x_93, x_94); +if (lean_is_scalar(x_92)) { + x_96 = lean_alloc_ctor(1, 2, 0); +} else { + x_96 = x_92; +} +lean_ctor_set(x_96, 0, x_95); +lean_ctor_set(x_96, 1, x_76); +return x_96; } } } @@ -16536,7 +20450,7 @@ return x_89; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -16555,7 +20469,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_FVarSubst_apply(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -16569,7 +20483,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_FVarSubst_apply(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -16578,85 +20492,89 @@ return x_13; } } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___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, lean_object* x_11, lean_object* x_12) { +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___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, lean_object* x_11) { _start: { -lean_object* x_13; uint8_t x_14; -x_13 = lean_array_get_size(x_7); -x_14 = lean_nat_dec_lt(x_6, x_13); -lean_dec(x_13); -if (x_14 == 0) +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_6); +x_13 = lean_nat_dec_lt(x_5, x_12); +lean_dec(x_12); +if (x_13 == 0) { -lean_object* x_15; lean_object* x_16; -lean_dec(x_6); -lean_dec(x_4); +lean_object* x_14; lean_object* x_15; +lean_dec(x_5); +lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_15 = x_7; -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_12); -return x_16; +x_14 = x_6; +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_11); +return x_15; } else { -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_array_fget(x_7, x_6); -x_18 = lean_unsigned_to_nat(0u); -x_19 = lean_array_fset(x_7, x_6, x_18); -x_20 = x_17; -x_21 = lean_array_get_size(x_5); -x_22 = lean_nat_dec_lt(x_6, x_21); -lean_dec(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; -x_23 = lean_ctor_get(x_1, 2); -lean_inc(x_23); -x_24 = lean_ctor_get(x_1, 3); -lean_inc(x_24); -x_25 = lean_box(0); -x_26 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__1(x_23, x_25); -x_27 = lean_ctor_get(x_20, 0); -lean_inc(x_27); +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_array_fget(x_6, x_5); +x_17 = lean_unsigned_to_nat(0u); +x_18 = lean_array_fset(x_6, x_5, x_17); +x_19 = x_16; +x_20 = lean_array_get_size(x_4); +x_21 = lean_nat_dec_lt(x_5, x_20); lean_dec(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; +x_22 = lean_ctor_get(x_1, 2); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 3); +lean_inc(x_23); +x_24 = lean_box(0); +x_25 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__1(x_22, x_24); +x_26 = lean_ctor_get(x_19, 0); +lean_inc(x_26); +lean_dec(x_19); +lean_inc(x_3); lean_inc(x_2); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_2); +lean_ctor_set(x_27, 1, x_3); x_28 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_2); -lean_ctor_set(x_28, 2, x_26); -lean_ctor_set(x_28, 3, x_24); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +lean_ctor_set(x_28, 2, x_25); +lean_ctor_set(x_28, 3, x_23); x_29 = lean_unsigned_to_nat(1u); -x_30 = lean_nat_add(x_6, x_29); +x_30 = lean_nat_add(x_5, x_29); x_31 = x_28; -x_32 = lean_array_fset(x_19, x_6, x_31); -lean_dec(x_6); -x_6 = x_30; -x_7 = x_32; +x_32 = lean_array_fset(x_18, x_5, x_31); +lean_dec(x_5); +x_5 = x_30; +x_6 = x_32; goto _start; } 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; -x_34 = lean_array_fget(x_5, x_6); -x_35 = lean_ctor_get(x_20, 0); +x_34 = lean_array_fget(x_4, x_5); +x_35 = lean_ctor_get(x_19, 0); lean_inc(x_35); -x_36 = lean_ctor_get(x_20, 2); +x_36 = lean_ctor_get(x_19, 2); lean_inc(x_36); x_37 = lean_ctor_get(x_1, 2); lean_inc(x_37); x_38 = lean_ctor_get(x_1, 3); lean_inc(x_38); lean_inc(x_1); -x_39 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(x_1, x_3, x_6, lean_box(0), x_38); -x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(x_20, x_39); -lean_dec(x_20); +x_39 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(x_1, x_2, x_5, lean_box(0), x_38); +x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(x_19, x_39); +lean_dec(x_19); x_41 = lean_box(0); -x_42 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4(x_34, x_37, x_41); -x_43 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(x_36, x_42); -x_44 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__6(x_34, x_43); -lean_inc(x_4); -x_45 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(x_36, x_4); +x_42 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4(x_34, x_37, x_41); +x_43 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(x_36, x_42); +x_44 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6(x_34, x_43); +lean_inc(x_3); +x_45 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(x_36, x_3); lean_dec(x_36); x_46 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_46, 0, x_35); @@ -16664,18 +20582,31 @@ lean_ctor_set(x_46, 1, x_45); lean_ctor_set(x_46, 2, x_44); lean_ctor_set(x_46, 3, x_40); x_47 = lean_unsigned_to_nat(1u); -x_48 = lean_nat_add(x_6, x_47); +x_48 = lean_nat_add(x_5, x_47); x_49 = x_46; -x_50 = lean_array_fset(x_19, x_6, x_49); -lean_dec(x_6); -x_6 = x_48; -x_7 = x_50; +x_50 = lean_array_fset(x_18, x_5, x_49); +lean_dec(x_5); +x_5 = x_48; +x_6 = x_50; goto _start; } } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1; +x_3 = lean_unsigned_to_nat(612u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2() { _start: { lean_object* x_1; @@ -16683,210 +20614,270 @@ x_1 = lean_mk_string("value step"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3() { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue(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 = l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1(lean_object* x_1) { -_start: +lean_object* x_7; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_32 = lean_st_ref_get(x_5, x_6); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_33, 3); +lean_inc(x_34); +lean_dec(x_33); +x_35 = lean_ctor_get_uint8(x_34, sizeof(void*)*1); +lean_dec(x_34); +if (x_35 == 0) { -lean_object* x_2; -x_2 = l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3; -return x_2; -} -} -static lean_object* _init_l___private_Lean_Meta_Match_Match_31__processValue___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___boxed), 1, 0); -return x_1; -} -} -lean_object* l___private_Lean_Meta_Match_Match_31__processValue(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; -x_7 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -x_8 = l___private_Lean_Meta_Match_Match_31__processValue___closed__1; -x_9 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_7, x_8, x_2, x_3, x_4, x_5, x_6); -x_10 = lean_ctor_get(x_1, 1); -lean_inc(x_10); -if (lean_obj_tag(x_10) == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -lean_dec(x_1); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_13 = l_unreachable_x21___rarg(x_12); -x_14 = lean_apply_5(x_13, x_2, x_3, x_4, x_5, x_11); -return x_14; +lean_object* x_36; +x_36 = lean_ctor_get(x_32, 1); +lean_inc(x_36); +lean_dec(x_32); +x_7 = x_36; +goto block_31; } 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; -x_15 = lean_ctor_get(x_9, 1); -lean_inc(x_15); -lean_dec(x_9); -x_16 = lean_ctor_get(x_10, 0); -lean_inc(x_16); -x_17 = lean_ctor_get(x_10, 1); -lean_inc(x_17); +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_32, 1); +lean_inc(x_37); +lean_dec(x_32); +x_38 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_39 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_38, x_2, x_3, x_4, x_5, x_37); +x_40 = lean_ctor_get(x_39, 0); +lean_inc(x_40); +x_41 = lean_unbox(x_40); +lean_dec(x_40); +if (x_41 == 0) +{ +lean_object* x_42; +x_42 = lean_ctor_get(x_39, 1); +lean_inc(x_42); +lean_dec(x_39); +x_7 = x_42; +goto block_31; +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_43 = lean_ctor_get(x_39, 1); +lean_inc(x_43); +lean_dec(x_39); +x_44 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3; +x_45 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_38, x_44, x_2, x_3, x_4, x_5, x_43); +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +lean_dec(x_45); +x_7 = x_46; +goto block_31; +} +} +block_31: +{ +lean_object* x_8; +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_1); +x_9 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1; +x_11 = lean_panic_fn(x_9, x_10); +x_12 = lean_apply_5(x_11, x_2, x_3, x_4, x_5, x_7); +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; +x_13 = lean_ctor_get(x_8, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_8, 1); +lean_inc(x_14); +lean_dec(x_8); lean_inc(x_1); -x_18 = l___private_Lean_Meta_Match_Match_29__collectValues(x_1); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = l_Lean_Expr_fvarId_x21(x_16); -x_21 = l_Lean_Meta_caseValue___closed__2; +x_15 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectValues(x_1); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +x_17 = l_Lean_Expr_fvarId_x21(x_13); +x_18 = l_Lean_Meta_caseValue___closed__2; lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -x_22 = l_Lean_Meta_caseValues(x_19, x_20, x_18, x_21, x_2, x_3, x_4, x_5, x_15); -if (lean_obj_tag(x_22) == 0) +x_19 = l_Lean_Meta_caseValues(x_16, x_17, x_15, x_18, x_2, x_3, x_4, x_5, x_7); +if (lean_obj_tag(x_19) == 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; -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 = x_23; -x_26 = lean_unsigned_to_nat(0u); -x_27 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__8___boxed), 12, 7); -lean_closure_set(x_27, 0, x_1); -lean_closure_set(x_27, 1, x_10); -lean_closure_set(x_27, 2, x_16); -lean_closure_set(x_27, 3, x_17); -lean_closure_set(x_27, 4, x_18); -lean_closure_set(x_27, 5, x_26); -lean_closure_set(x_27, 6, x_25); -x_28 = x_27; -x_29 = lean_apply_5(x_28, x_2, x_3, x_4, x_5, x_24); -return x_29; +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_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 = x_20; +x_23 = lean_unsigned_to_nat(0u); +x_24 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__8___boxed), 11, 6); +lean_closure_set(x_24, 0, x_1); +lean_closure_set(x_24, 1, x_13); +lean_closure_set(x_24, 2, x_14); +lean_closure_set(x_24, 3, x_15); +lean_closure_set(x_24, 4, x_23); +lean_closure_set(x_24, 5, x_22); +x_25 = x_24; +x_26 = lean_apply_5(x_25, x_2, x_3, x_4, x_5, x_21); +return x_26; } else { -uint8_t x_30; -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_10); +uint8_t x_27; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_30 = !lean_is_exclusive(x_22); -if (x_30 == 0) +x_27 = !lean_is_exclusive(x_19); +if (x_27 == 0) { -return x_22; +return x_19; } else { -lean_object* x_31; lean_object* x_32; lean_object* x_33; -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_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_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_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___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* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2___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_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__2(x_1, x_2, x_3, x_4, x_5); +x_6 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__2(x_1, x_2, x_3, x_4, x_5); lean_dec(x_3); lean_dec(x_2); return x_6; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__3(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__3(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__4(x_1, x_2, x_3); +x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__4(x_1, x_2, x_3); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__5(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__5(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__7(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__7(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___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, lean_object* x_11, lean_object* x_12) { +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___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, lean_object* x_11) { _start: { -lean_object* x_13; -x_13 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__8(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_object* x_12; +x_12 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__8(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_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_5); +lean_dec(x_7); +lean_dec(x_4); +return x_12; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 4) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_dec(x_3); -return x_13; +x_6 = lean_ctor_get(x_1, 1); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = lean_apply_3(x_2, x_7, x_8, x_6); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_5); +lean_dec(x_2); +x_10 = lean_apply_1(x_3, x_1); +return x_10; } } -lean_object* l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___boxed(lean_object* x_1) { +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes_match__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Meta_Match_Match_31__processValue___lambda__1(x_1); -lean_dec(x_1); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes_match__1___rarg), 3, 0); return x_2; } } -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -16943,35 +20934,76 @@ goto _start; } } } -lean_object* l___private_Lean_Meta_Match_Match_32__collectArraySizes(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; x_2 = lean_ctor_get(x_1, 2); x_3 = l_Array_empty___closed__1; -x_4 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1(x_3, x_2); +x_4 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1(x_3, x_2); return x_4; } } -lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_32__collectArraySizes___spec__1(x_1, x_2); +x_3 = l_List_foldl___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___spec__1(x_1, x_2); lean_dec(x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_Match_32__collectArraySizes___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes___boxed(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Meta_Match_Match_32__collectArraySizes(x_1); +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes(x_1); lean_dec(x_1); return x_2; } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg(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_unsigned_to_nat(0u); +x_6 = lean_nat_dec_eq(x_1, x_5); +if (x_6 == 0) +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +x_7 = lean_unsigned_to_nat(1u); +x_8 = lean_nat_sub(x_1, x_7); +x_9 = lean_apply_2(x_3, x_8, x_2); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_3); +x_10 = lean_apply_1(x_4, x_2); +return x_10; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg___boxed), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg___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___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop_match__1___rarg(x_1, x_2, x_3, x_4); +lean_dec(x_1); +return x_5; +} +} +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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: { if (lean_obj_tag(x_1) == 0) @@ -16996,7 +21028,7 @@ x_11 = lean_ctor_get(x_1, 1); x_12 = l_Lean_Expr_fvarId_x21(x_10); lean_dec(x_10); lean_inc(x_2); -x_13 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(x_12, x_2, x_3, x_4, x_5, x_6); +x_13 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(x_12, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_13) == 0) { lean_object* x_14; lean_object* x_15; lean_object* x_16; @@ -17005,7 +21037,7 @@ lean_inc(x_14); x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); lean_dec(x_13); -x_16 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1(x_11, x_2, x_3, x_4, x_5, x_15); +x_16 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__1(x_11, x_2, x_3, x_4, x_5, x_15); if (lean_obj_tag(x_16) == 0) { uint8_t x_17; @@ -17097,7 +21129,7 @@ lean_dec(x_1); x_32 = l_Lean_Expr_fvarId_x21(x_30); lean_dec(x_30); lean_inc(x_2); -x_33 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1(x_32, x_2, x_3, x_4, x_5, x_6); +x_33 = l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1(x_32, x_2, x_3, x_4, x_5, x_6); if (lean_obj_tag(x_33) == 0) { lean_object* x_34; lean_object* x_35; lean_object* x_36; @@ -17106,7 +21138,7 @@ lean_inc(x_34); x_35 = lean_ctor_get(x_33, 1); lean_inc(x_35); lean_dec(x_33); -x_36 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1(x_31, x_2, x_3, x_4, x_5, x_35); +x_36 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__1(x_31, x_2, x_3, x_4, x_5, x_35); 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; @@ -17190,7 +21222,7 @@ return x_49; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(lean_object* x_1) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17212,7 +21244,7 @@ x_6 = l_Lean_Expr_fvarId_x21(x_4); lean_dec(x_4); x_7 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_7, 0, x_6); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(x_5); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(x_5); lean_ctor_set(x_1, 1, x_8); lean_ctor_set(x_1, 0, x_7); return x_1; @@ -17229,7 +21261,7 @@ x_11 = l_Lean_Expr_fvarId_x21(x_9); lean_dec(x_9); x_12 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_12, 0, x_11); -x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(x_10); +x_13 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(x_10); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -17238,16 +21270,16 @@ return x_14; } } } -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___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, 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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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_14; x_13 = lean_array_push(x_1, x_7); -x_14 = l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(x_2, x_3, x_4, x_5, x_6, x_13, x_8, x_9, x_10, x_11, x_12); +x_14 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop(x_2, x_3, x_4, x_5, x_6, x_13, x_8, x_9, x_10, x_11, x_12); return x_14; } } -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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; @@ -17262,7 +21294,7 @@ x_16 = lean_nat_add(x_15, x_14); lean_inc(x_4); x_17 = l_Lean_Name_appendIndexAfter(x_4, x_16); lean_inc(x_3); -x_18 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___lambda__1___boxed), 12, 6); +x_18 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___lambda__1___boxed), 12, 6); lean_closure_set(x_18, 0, x_6); lean_closure_set(x_18, 1, x_1); lean_closure_set(x_18, 2, x_2); @@ -17270,7 +21302,7 @@ lean_closure_set(x_18, 3, x_3); lean_closure_set(x_18, 4, x_4); lean_closure_set(x_18, 5, x_15); x_19 = 0; -x_20 = l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(x_17, x_19, x_3, x_18, x_7, x_8, x_9, x_10, x_11); +x_20 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_17, x_19, x_3, x_18, x_7, x_8, x_9, x_10, x_11); return x_20; } else @@ -17284,7 +21316,7 @@ lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_21); -x_22 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_2__introArrayLitAux___main___spec__1(x_3, x_21, x_7, x_8, x_9, x_10, x_11); +x_22 = l_Lean_Meta_mkArrayLit___at___private_Lean_Meta_Match_CaseArraySizes_0__Lean_Meta_introArrayLit_loop___spec__1(x_3, x_21, x_7, x_8, x_9, x_10, x_11); if (lean_obj_tag(x_22) == 0) { lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; @@ -17296,7 +21328,7 @@ lean_dec(x_22); lean_inc(x_1); x_25 = l_Lean_Meta_Match_Alt_replaceFVarId(x_2, x_23, x_1); lean_inc(x_21); -x_26 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1(x_21, x_7, x_8, x_9, x_10, x_24); +x_26 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__1(x_21, x_7, x_8, x_9, x_10, x_24); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); @@ -17308,7 +21340,7 @@ 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); -x_29 = l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(x_21); +x_29 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(x_21); x_30 = lean_ctor_get(x_1, 0); lean_inc(x_30); x_31 = lean_ctor_get(x_1, 1); @@ -17363,7 +21395,7 @@ x_46 = lean_ctor_get(x_26, 1); lean_inc(x_46); lean_inc(x_45); lean_dec(x_26); -x_47 = l_List_map___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__2(x_21); +x_47 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___spec__2(x_21); x_48 = lean_ctor_get(x_1, 0); lean_inc(x_48); x_49 = lean_ctor_get(x_1, 1); @@ -17462,72 +21494,55 @@ return x_65; } } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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_List_mapM___main___at___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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); return x_7; } } -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___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 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___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_6); return x_13; } } -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +x_12 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop(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_5); return x_12; } } -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -return x_12; -} -} -lean_object* l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, 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___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux(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_5); -return x_12; -} -} -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___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; x_11 = l_Lean_LocalDecl_userName(x_5); x_12 = l_Array_empty___closed__1; -x_13 = l___private_Lean_Meta_Match_Match_33__expandVarIntoArrayLitAux___main(x_1, x_2, x_3, x_11, x_4, x_12, x_6, x_7, x_8, x_9, x_10); +x_13 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit_loop(x_1, x_2, x_3, x_11, x_4, x_12, x_6, x_7, x_8, x_9, x_10); return x_13; } } -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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; x_10 = lean_ctor_get(x_1, 3); lean_inc(x_10); lean_inc(x_2); -x_11 = lean_alloc_closure((void*)(l_Lean_Meta_getLocalDecl___at_Lean_Meta_getFVarLocalDecl___spec__1___boxed), 6, 1); +x_11 = lean_alloc_closure((void*)(l_Lean_Meta_getLocalDecl___at_Lean_Meta_substCore___spec__1___boxed), 6, 1); lean_closure_set(x_11, 0, x_2); -x_12 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___lambda__1___boxed), 10, 4); +x_12 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___lambda__1___boxed), 10, 4); lean_closure_set(x_12, 0, x_1); lean_closure_set(x_12, 1, x_2); lean_closure_set(x_12, 2, x_3); @@ -17535,21 +21550,190 @@ lean_closure_set(x_12, 3, x_4); x_13 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); lean_closure_set(x_13, 0, x_11); lean_closure_set(x_13, 1, x_12); -x_14 = l_Lean_Meta_withExistingLocalDecls___at_Lean_Meta_Match_Alt_toMessageData___spec__3___rarg(x_10, x_13, x_5, x_6, x_7, x_8, x_9); +x_14 = l_Lean_Meta_withExistingLocalDecls___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoCtor_x3f___spec__6___rarg(x_10, x_13, x_5, x_6, x_7, x_8, x_9); return x_14; } } -lean_object* l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___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___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_11 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit___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); return x_11; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__1(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 4: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +lean_dec(x_6); +x_13 = lean_apply_3(x_2, x_11, x_12, x_10); +return x_13; +} +default: +{ +lean_object* x_14; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_14 = lean_apply_1(x_4, x_1); +return x_14; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__1___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__2___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +switch (lean_obj_tag(x_6)) { +case 1: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_4); +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_ctor_get(x_6, 0); +lean_inc(x_8); +lean_dec(x_6); +x_9 = lean_apply_2(x_3, x_8, x_7); +return x_9; +} +case 4: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_dec(x_4); +lean_dec(x_3); +x_10 = lean_ctor_get(x_1, 1); +lean_inc(x_10); +lean_dec(x_1); +x_11 = lean_ctor_get(x_6, 0); +lean_inc(x_11); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +lean_dec(x_6); +x_13 = lean_apply_3(x_2, x_11, x_12, x_10); +return x_13; +} +default: +{ +lean_object* x_14; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_14 = lean_apply_1(x_4, x_1); +return x_14; +} +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__2___rarg), 4, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit_match__3___rarg), 3, 0); +return x_2; +} +} +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17568,7 +21752,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); x_6 = l_Lean_mkFVar(x_4); -x_7 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__1(x_5); +x_7 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__1(x_5); lean_ctor_set(x_1, 1, x_7); lean_ctor_set(x_1, 0, x_6); return x_1; @@ -17582,7 +21766,7 @@ lean_inc(x_9); lean_inc(x_8); lean_dec(x_1); x_10 = l_Lean_mkFVar(x_8); -x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__1(x_9); +x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__1(x_9); x_12 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_12, 0, x_10); lean_ctor_set(x_12, 1, x_11); @@ -17591,7 +21775,7 @@ return x_12; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -17610,7 +21794,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_FVarSubst_apply(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -17624,7 +21808,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_FVarSubst_apply(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -17633,7 +21817,7 @@ return x_13; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(lean_object* x_1) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -17653,7 +21837,7 @@ x_4 = lean_ctor_get(x_1, 0); x_5 = lean_ctor_get(x_1, 1); x_6 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_6, 0, x_4); -x_7 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(x_5); +x_7 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(x_5); lean_ctor_set(x_1, 1, x_7); lean_ctor_set(x_1, 0, x_6); return x_1; @@ -17668,7 +21852,7 @@ lean_inc(x_8); lean_dec(x_1); x_10 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_10, 0, x_8); -x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(x_9); +x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(x_9); x_12 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_12, 0, x_10); lean_ctor_set(x_12, 1, x_11); @@ -17677,7 +21861,7 @@ return x_12; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_3) == 0) @@ -17698,13 +21882,13 @@ x_7 = lean_ctor_get(x_3, 1); x_8 = l_Lean_Expr_fvarId_x21(x_1); x_9 = lean_ctor_get(x_2, 1); x_10 = l_Array_toList___rarg(x_9); -x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(x_10); +x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(x_10); x_12 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_12, 0, x_11); -x_13 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_8, x_12, x_6); +x_13 = l_Lean_Meta_Match_Example_replaceFVarId(x_8, x_12, x_6); lean_dec(x_12); lean_dec(x_8); -x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(x_1, x_2, x_7); +x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(x_1, x_2, x_7); lean_ctor_set(x_3, 1, x_14); lean_ctor_set(x_3, 0, x_13); return x_3; @@ -17720,13 +21904,13 @@ lean_dec(x_3); x_17 = l_Lean_Expr_fvarId_x21(x_1); x_18 = lean_ctor_get(x_2, 1); x_19 = l_Array_toList___rarg(x_18); -x_20 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__3(x_19); +x_20 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__3(x_19); x_21 = lean_alloc_ctor(4, 1, 0); lean_ctor_set(x_21, 0, x_20); -x_22 = l_Lean_Meta_Match_Example_replaceFVarId___main(x_17, x_21, x_15); +x_22 = l_Lean_Meta_Match_Example_replaceFVarId(x_17, x_21, x_15); lean_dec(x_21); lean_dec(x_17); -x_23 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(x_1, x_2, x_16); +x_23 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(x_1, x_2, x_16); x_24 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_24, 0, x_22); lean_ctor_set(x_24, 1, x_23); @@ -17735,7 +21919,7 @@ return x_24; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -17754,8 +21938,8 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_obj x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = lean_ctor_get(x_1, 3); -x_8 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_7, x_5); -x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(x_1, x_6); +x_8 = l_Lean_Meta_Match_Example_applyFVarSubst(x_7, x_5); +x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(x_1, x_6); lean_ctor_set(x_2, 1, x_9); lean_ctor_set(x_2, 0, x_8); return x_2; @@ -17769,8 +21953,8 @@ lean_inc(x_11); lean_inc(x_10); lean_dec(x_2); x_12 = lean_ctor_get(x_1, 3); -x_13 = l_Lean_Meta_Match_Example_applyFVarSubst___main(x_12, x_10); -x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(x_1, x_11); +x_13 = l_Lean_Meta_Match_Example_applyFVarSubst(x_12, x_10); +x_14 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(x_1, x_11); x_15 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_15, 0, x_13); lean_ctor_set(x_15, 1, x_14); @@ -17779,7 +21963,7 @@ return x_15; } } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_2) == 0) @@ -17942,7 +22126,7 @@ goto _start; } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(lean_object* x_1, lean_object* x_2) { _start: { if (lean_obj_tag(x_2) == 0) @@ -17961,7 +22145,7 @@ lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; x_5 = lean_ctor_get(x_2, 0); x_6 = lean_ctor_get(x_2, 1); x_7 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_5); -x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(x_1, x_6); +x_8 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(x_1, x_6); lean_ctor_set(x_2, 1, x_8); lean_ctor_set(x_2, 0, x_7); return x_2; @@ -17975,7 +22159,7 @@ lean_inc(x_10); lean_inc(x_9); lean_dec(x_2); x_11 = l_Lean_Meta_Match_Alt_applyFVarSubst(x_1, x_9); -x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(x_1, x_10); +x_12 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(x_1, x_10); x_13 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_13, 0, x_11); lean_ctor_set(x_13, 1, x_12); @@ -17984,7 +22168,28 @@ return x_13; } } } -lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___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) { +static lean_object* _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("_private.Lean.Meta.Match.Match.0.Lean.Meta.Match.processArrayLit"); +return x_1; +} +} +static lean_object* _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1; +x_3 = lean_unsigned_to_nat(688u); +x_4 = lean_unsigned_to_nat(16u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +lean_object* l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___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) { _start: { if (lean_obj_tag(x_3) == 0) @@ -18021,30 +22226,31 @@ x_29 = lean_ctor_get(x_11, 4); lean_inc(x_29); if (lean_obj_tag(x_29) == 0) { -lean_object* x_30; lean_object* x_31; lean_object* x_32; +lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_dec(x_11); x_30 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_31 = l_unreachable_x21___rarg(x_30); +x_31 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2; +x_32 = lean_panic_fn(x_30, x_31); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_32 = lean_apply_5(x_31, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_32) == 0) +x_33 = lean_apply_5(x_32, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_33) == 0) { -lean_object* x_33; lean_object* x_34; -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; +x_34 = lean_ctor_get(x_33, 0); lean_inc(x_34); -lean_dec(x_32); -x_14 = x_33; -x_15 = x_34; +x_35 = lean_ctor_get(x_33, 1); +lean_inc(x_35); +lean_dec(x_33); +x_14 = x_34; +x_15 = x_35; goto block_28; } else { -uint8_t x_35; +uint8_t x_36; lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18053,87 +22259,87 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_35 = !lean_is_exclusive(x_32); -if (x_35 == 0) +x_36 = !lean_is_exclusive(x_33); +if (x_36 == 0) { -return x_32; +return x_33; } else { -lean_object* x_36; lean_object* x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_32, 0); -x_37 = lean_ctor_get(x_32, 1); +lean_object* x_37; lean_object* x_38; lean_object* x_39; +x_37 = lean_ctor_get(x_33, 0); +x_38 = lean_ctor_get(x_33, 1); +lean_inc(x_38); lean_inc(x_37); -lean_inc(x_36); -lean_dec(x_32); -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_33); +x_39 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_39, 0, x_37); +lean_ctor_set(x_39, 1, x_38); +return x_39; } } } else { -lean_object* x_39; -x_39 = lean_ctor_get(x_29, 0); -lean_inc(x_39); -switch (lean_obj_tag(x_39)) { +lean_object* x_40; +x_40 = lean_ctor_get(x_29, 0); +lean_inc(x_40); +switch (lean_obj_tag(x_40)) { case 1: { -uint8_t x_40; -x_40 = !lean_is_exclusive(x_11); -if (x_40 == 0) +uint8_t x_41; +x_41 = !lean_is_exclusive(x_11); +if (x_41 == 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; lean_object* x_47; lean_object* x_48; -x_41 = lean_ctor_get(x_11, 0); -x_42 = lean_ctor_get(x_11, 1); -x_43 = lean_ctor_get(x_11, 2); -x_44 = lean_ctor_get(x_11, 3); -x_45 = lean_ctor_get(x_11, 4); -lean_dec(x_45); -x_46 = lean_ctor_get(x_29, 1); -lean_inc(x_46); -lean_dec(x_29); -x_47 = lean_ctor_get(x_39, 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; lean_object* x_49; +x_42 = lean_ctor_get(x_11, 0); +x_43 = lean_ctor_get(x_11, 1); +x_44 = lean_ctor_get(x_11, 2); +x_45 = lean_ctor_get(x_11, 3); +x_46 = lean_ctor_get(x_11, 4); +lean_dec(x_46); +x_47 = lean_ctor_get(x_29, 1); lean_inc(x_47); -lean_dec(x_39); +lean_dec(x_29); +x_48 = lean_ctor_get(x_40, 0); +lean_inc(x_48); +lean_dec(x_40); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_48 = l_Lean_Meta_getArrayArgType(x_1, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_48) == 0) +x_49 = l_Lean_Meta_getArrayArgType(x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_49) == 0) { -lean_object* x_49; lean_object* x_50; lean_object* x_51; -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; +x_50 = lean_ctor_get(x_49, 0); lean_inc(x_50); -lean_dec(x_48); -lean_ctor_set(x_11, 4, x_46); +x_51 = lean_ctor_get(x_49, 1); +lean_inc(x_51); +lean_dec(x_49); +lean_ctor_set(x_11, 4, x_47); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_2); -x_51 = l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit(x_11, x_47, x_49, x_2, x_4, x_5, x_6, x_7, x_50); -if (lean_obj_tag(x_51) == 0) +x_52 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit(x_11, x_48, x_50, x_2, x_4, x_5, x_6, x_7, x_51); +if (lean_obj_tag(x_52) == 0) { -lean_object* x_52; lean_object* x_53; -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_ctor_get(x_51, 1); +lean_object* x_53; lean_object* x_54; +x_53 = lean_ctor_get(x_52, 0); lean_inc(x_53); -lean_dec(x_51); -x_14 = x_52; -x_15 = x_53; +x_54 = lean_ctor_get(x_52, 1); +lean_inc(x_54); +lean_dec(x_52); +x_14 = x_53; +x_15 = x_54; goto block_28; } else { -uint8_t x_54; +uint8_t x_55; lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18142,36 +22348,36 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_54 = !lean_is_exclusive(x_51); -if (x_54 == 0) +x_55 = !lean_is_exclusive(x_52); +if (x_55 == 0) { -return x_51; +return x_52; } 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_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_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; +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 { -uint8_t x_58; +uint8_t x_59; +lean_dec(x_48); lean_dec(x_47); -lean_dec(x_46); lean_free_object(x_11); +lean_dec(x_45); lean_dec(x_44); lean_dec(x_43); lean_dec(x_42); -lean_dec(x_41); lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18180,85 +22386,85 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_58 = !lean_is_exclusive(x_48); -if (x_58 == 0) +x_59 = !lean_is_exclusive(x_49); +if (x_59 == 0) { -return x_48; +return x_49; } else { -lean_object* x_59; lean_object* x_60; lean_object* x_61; -x_59 = lean_ctor_get(x_48, 0); -x_60 = lean_ctor_get(x_48, 1); +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_49, 0); +x_61 = lean_ctor_get(x_49, 1); +lean_inc(x_61); lean_inc(x_60); -lean_inc(x_59); -lean_dec(x_48); -x_61 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_61, 0, x_59); -lean_ctor_set(x_61, 1, x_60); -return x_61; +lean_dec(x_49); +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 { -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_62 = lean_ctor_get(x_11, 0); -x_63 = lean_ctor_get(x_11, 1); -x_64 = lean_ctor_get(x_11, 2); -x_65 = lean_ctor_get(x_11, 3); +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_11, 0); +x_64 = lean_ctor_get(x_11, 1); +x_65 = lean_ctor_get(x_11, 2); +x_66 = lean_ctor_get(x_11, 3); +lean_inc(x_66); lean_inc(x_65); lean_inc(x_64); lean_inc(x_63); -lean_inc(x_62); lean_dec(x_11); -x_66 = lean_ctor_get(x_29, 1); -lean_inc(x_66); -lean_dec(x_29); -x_67 = lean_ctor_get(x_39, 0); +x_67 = lean_ctor_get(x_29, 1); lean_inc(x_67); -lean_dec(x_39); +lean_dec(x_29); +x_68 = lean_ctor_get(x_40, 0); +lean_inc(x_68); +lean_dec(x_40); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_1); -x_68 = l_Lean_Meta_getArrayArgType(x_1, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_68) == 0) +x_69 = l_Lean_Meta_getArrayArgType(x_1, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_69) == 0) { -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_69 = lean_ctor_get(x_68, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_68, 1); +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_70 = lean_ctor_get(x_69, 0); lean_inc(x_70); -lean_dec(x_68); -x_71 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_71, 0, x_62); -lean_ctor_set(x_71, 1, x_63); -lean_ctor_set(x_71, 2, x_64); -lean_ctor_set(x_71, 3, x_65); -lean_ctor_set(x_71, 4, x_66); +x_71 = lean_ctor_get(x_69, 1); +lean_inc(x_71); +lean_dec(x_69); +x_72 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_72, 0, x_63); +lean_ctor_set(x_72, 1, x_64); +lean_ctor_set(x_72, 2, x_65); +lean_ctor_set(x_72, 3, x_66); +lean_ctor_set(x_72, 4, x_67); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_2); -x_72 = l___private_Lean_Meta_Match_Match_34__expandVarIntoArrayLit(x_71, x_67, x_69, x_2, x_4, x_5, x_6, x_7, x_70); -if (lean_obj_tag(x_72) == 0) +x_73 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandVarIntoArrayLit(x_72, x_68, x_70, x_2, x_4, x_5, x_6, x_7, x_71); +if (lean_obj_tag(x_73) == 0) { -lean_object* x_73; lean_object* x_74; -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; +x_74 = lean_ctor_get(x_73, 0); lean_inc(x_74); -lean_dec(x_72); -x_14 = x_73; -x_15 = x_74; +x_75 = lean_ctor_get(x_73, 1); +lean_inc(x_75); +lean_dec(x_73); +x_14 = x_74; +x_15 = x_75; goto block_28; } else { -lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18267,37 +22473,37 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_75 = lean_ctor_get(x_72, 0); -lean_inc(x_75); -x_76 = lean_ctor_get(x_72, 1); +x_76 = lean_ctor_get(x_73, 0); lean_inc(x_76); -if (lean_is_exclusive(x_72)) { - lean_ctor_release(x_72, 0); - lean_ctor_release(x_72, 1); - x_77 = x_72; +x_77 = lean_ctor_get(x_73, 1); +lean_inc(x_77); +if (lean_is_exclusive(x_73)) { + lean_ctor_release(x_73, 0); + lean_ctor_release(x_73, 1); + x_78 = x_73; } else { - lean_dec_ref(x_72); - x_77 = lean_box(0); + lean_dec_ref(x_73); + x_78 = lean_box(0); } -if (lean_is_scalar(x_77)) { - x_78 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_78)) { + x_79 = lean_alloc_ctor(1, 2, 0); } else { - x_78 = x_77; + x_79 = x_78; } -lean_ctor_set(x_78, 0, x_75); -lean_ctor_set(x_78, 1, x_76); -return x_78; +lean_ctor_set(x_79, 0, x_76); +lean_ctor_set(x_79, 1, x_77); +return x_79; } } else { -lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; +lean_dec(x_68); lean_dec(x_67); lean_dec(x_66); lean_dec(x_65); lean_dec(x_64); lean_dec(x_63); -lean_dec(x_62); lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18306,108 +22512,109 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_79 = lean_ctor_get(x_68, 0); -lean_inc(x_79); -x_80 = lean_ctor_get(x_68, 1); +x_80 = lean_ctor_get(x_69, 0); lean_inc(x_80); -if (lean_is_exclusive(x_68)) { - lean_ctor_release(x_68, 0); - lean_ctor_release(x_68, 1); - x_81 = x_68; +x_81 = lean_ctor_get(x_69, 1); +lean_inc(x_81); +if (lean_is_exclusive(x_69)) { + lean_ctor_release(x_69, 0); + lean_ctor_release(x_69, 1); + x_82 = x_69; } else { - lean_dec_ref(x_68); - x_81 = lean_box(0); + lean_dec_ref(x_69); + x_82 = lean_box(0); } -if (lean_is_scalar(x_81)) { - x_82 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_82)) { + x_83 = lean_alloc_ctor(1, 2, 0); } else { - x_82 = x_81; + x_83 = x_82; } -lean_ctor_set(x_82, 0, x_79); -lean_ctor_set(x_82, 1, x_80); -return x_82; +lean_ctor_set(x_83, 0, x_80); +lean_ctor_set(x_83, 1, x_81); +return x_83; } } } case 4: { -uint8_t x_83; -x_83 = !lean_is_exclusive(x_11); -if (x_83 == 0) +uint8_t x_84; +x_84 = !lean_is_exclusive(x_11); +if (x_84 == 0) { -lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_84 = lean_ctor_get(x_11, 4); -lean_dec(x_84); -x_85 = lean_ctor_get(x_29, 1); -lean_inc(x_85); -lean_dec(x_29); -x_86 = lean_ctor_get(x_39, 1); +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; +x_85 = lean_ctor_get(x_11, 4); +lean_dec(x_85); +x_86 = lean_ctor_get(x_29, 1); lean_inc(x_86); -lean_dec(x_39); -x_87 = l_List_append___rarg(x_86, x_85); -lean_ctor_set(x_11, 4, x_87); +lean_dec(x_29); +x_87 = lean_ctor_get(x_40, 1); +lean_inc(x_87); +lean_dec(x_40); +x_88 = l_List_append___rarg(x_87, x_86); +lean_ctor_set(x_11, 4, x_88); x_14 = x_11; x_15 = x_8; goto block_28; } 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; -x_88 = lean_ctor_get(x_11, 0); -x_89 = lean_ctor_get(x_11, 1); -x_90 = lean_ctor_get(x_11, 2); -x_91 = lean_ctor_get(x_11, 3); +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_89 = lean_ctor_get(x_11, 0); +x_90 = lean_ctor_get(x_11, 1); +x_91 = lean_ctor_get(x_11, 2); +x_92 = lean_ctor_get(x_11, 3); +lean_inc(x_92); lean_inc(x_91); lean_inc(x_90); lean_inc(x_89); -lean_inc(x_88); lean_dec(x_11); -x_92 = lean_ctor_get(x_29, 1); -lean_inc(x_92); -lean_dec(x_29); -x_93 = lean_ctor_get(x_39, 1); +x_93 = lean_ctor_get(x_29, 1); lean_inc(x_93); -lean_dec(x_39); -x_94 = l_List_append___rarg(x_93, x_92); -x_95 = lean_alloc_ctor(0, 5, 0); -lean_ctor_set(x_95, 0, x_88); -lean_ctor_set(x_95, 1, x_89); -lean_ctor_set(x_95, 2, x_90); -lean_ctor_set(x_95, 3, x_91); -lean_ctor_set(x_95, 4, x_94); -x_14 = x_95; +lean_dec(x_29); +x_94 = lean_ctor_get(x_40, 1); +lean_inc(x_94); +lean_dec(x_40); +x_95 = l_List_append___rarg(x_94, x_93); +x_96 = lean_alloc_ctor(0, 5, 0); +lean_ctor_set(x_96, 0, x_89); +lean_ctor_set(x_96, 1, x_90); +lean_ctor_set(x_96, 2, x_91); +lean_ctor_set(x_96, 3, x_92); +lean_ctor_set(x_96, 4, x_95); +x_14 = x_96; x_15 = x_8; goto block_28; } } default: { -lean_object* x_96; lean_object* x_97; lean_object* x_98; -lean_dec(x_39); +lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; +lean_dec(x_40); lean_dec(x_29); lean_dec(x_11); -x_96 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_97 = l_unreachable_x21___rarg(x_96); +x_97 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_98 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2; +x_99 = lean_panic_fn(x_97, x_98); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_98 = lean_apply_5(x_97, x_4, x_5, x_6, x_7, x_8); -if (lean_obj_tag(x_98) == 0) +x_100 = lean_apply_5(x_99, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_100) == 0) { -lean_object* x_99; lean_object* x_100; -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); -x_14 = x_99; -x_15 = x_100; +lean_object* x_101; lean_object* x_102; +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_14 = x_101; +x_15 = x_102; goto block_28; } else { -uint8_t x_101; +uint8_t x_103; lean_dec(x_13); lean_dec(x_12); lean_dec(x_7); @@ -18416,23 +22623,23 @@ lean_dec(x_5); lean_dec(x_4); lean_dec(x_2); lean_dec(x_1); -x_101 = !lean_is_exclusive(x_98); -if (x_101 == 0) +x_103 = !lean_is_exclusive(x_100); +if (x_103 == 0) { -return x_98; +return x_100; } else { -lean_object* x_102; lean_object* x_103; lean_object* x_104; -x_102 = lean_ctor_get(x_98, 0); -x_103 = lean_ctor_get(x_98, 1); -lean_inc(x_103); -lean_inc(x_102); -lean_dec(x_98); -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; +lean_object* x_104; lean_object* x_105; lean_object* x_106; +x_104 = lean_ctor_get(x_100, 0); +x_105 = lean_ctor_get(x_100, 1); +lean_inc(x_105); +lean_inc(x_104); +lean_dec(x_100); +x_106 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_106, 0, x_104); +lean_ctor_set(x_106, 1, x_105); +return x_106; } } } @@ -18441,7 +22648,7 @@ return x_104; block_28: { lean_object* x_16; -x_16 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__8(x_1, x_2, x_12, x_4, x_5, x_6, x_7, x_15); +x_16 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8(x_1, x_2, x_12, x_4, x_5, x_6, x_7, x_15); if (lean_obj_tag(x_16) == 0) { uint8_t x_17; @@ -18509,102 +22716,105 @@ return x_27; } } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___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, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___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, lean_object* x_10, lean_object* x_11) { _start: { -lean_object* x_13; uint8_t x_14; -x_13 = lean_array_get_size(x_7); -x_14 = lean_nat_dec_lt(x_6, x_13); -lean_dec(x_13); -if (x_14 == 0) +lean_object* x_12; uint8_t x_13; +x_12 = lean_array_get_size(x_6); +x_13 = lean_nat_dec_lt(x_5, x_12); +lean_dec(x_12); +if (x_13 == 0) { -lean_object* x_15; lean_object* x_16; -lean_dec(x_11); +lean_object* x_14; lean_object* x_15; lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_4); +lean_dec(x_7); +lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_15 = x_7; -x_16 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_16, 0, x_15); -lean_ctor_set(x_16, 1, x_12); -return x_16; +x_14 = x_6; +x_15 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_15, 0, x_14); +lean_ctor_set(x_15, 1, x_11); +return x_15; } else { -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_array_fget(x_7, x_6); -x_18 = lean_unsigned_to_nat(0u); -x_19 = lean_array_fset(x_7, x_6, x_18); -x_20 = x_17; -x_21 = lean_array_get_size(x_5); -x_22 = lean_nat_dec_lt(x_6, x_21); -lean_dec(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; -x_23 = lean_ctor_get(x_1, 2); -lean_inc(x_23); -x_24 = lean_ctor_get(x_1, 3); -lean_inc(x_24); -x_25 = lean_box(0); -x_26 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_31__processValue___spec__1(x_23, x_25); -x_27 = lean_ctor_get(x_20, 0); -lean_inc(x_27); +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_array_fget(x_6, x_5); +x_17 = lean_unsigned_to_nat(0u); +x_18 = lean_array_fset(x_6, x_5, x_17); +x_19 = x_16; +x_20 = lean_array_get_size(x_4); +x_21 = lean_nat_dec_lt(x_5, x_20); lean_dec(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; +x_22 = lean_ctor_get(x_1, 2); +lean_inc(x_22); +x_23 = lean_ctor_get(x_1, 3); +lean_inc(x_23); +x_24 = lean_box(0); +x_25 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__1(x_22, x_24); +x_26 = lean_ctor_get(x_19, 0); +lean_inc(x_26); +lean_dec(x_19); +lean_inc(x_3); lean_inc(x_2); +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_2); +lean_ctor_set(x_27, 1, x_3); x_28 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_2); -lean_ctor_set(x_28, 2, x_26); -lean_ctor_set(x_28, 3, x_24); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +lean_ctor_set(x_28, 2, x_25); +lean_ctor_set(x_28, 3, x_23); x_29 = lean_unsigned_to_nat(1u); -x_30 = lean_nat_add(x_6, x_29); +x_30 = lean_nat_add(x_5, x_29); x_31 = x_28; -x_32 = lean_array_fset(x_19, x_6, x_31); -lean_dec(x_6); -x_6 = x_30; -x_7 = x_32; +x_32 = lean_array_fset(x_18, x_5, x_31); +lean_dec(x_5); +x_5 = x_30; +x_6 = x_32; goto _start; } 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; x_34 = l_Nat_Inhabited; -x_35 = lean_array_get(x_34, x_5, x_6); -x_36 = lean_ctor_get(x_20, 0); +x_35 = lean_array_get(x_34, x_4, x_5); +x_36 = lean_ctor_get(x_19, 0); lean_inc(x_36); -x_37 = lean_ctor_get(x_20, 1); +x_37 = lean_ctor_get(x_19, 1); lean_inc(x_37); -x_38 = lean_ctor_get(x_20, 3); +x_38 = lean_ctor_get(x_19, 3); lean_inc(x_38); x_39 = l_Array_toList___rarg(x_37); lean_dec(x_37); -x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__1(x_39); -lean_inc(x_4); -x_41 = l_List_append___rarg(x_40, x_4); -x_42 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(x_38, x_41); +x_40 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__1(x_39); +lean_inc(x_3); +x_41 = l_List_append___rarg(x_40, x_3); +x_42 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(x_38, x_41); x_43 = lean_ctor_get(x_1, 2); lean_inc(x_43); x_44 = lean_ctor_get(x_1, 3); lean_inc(x_44); -x_45 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(x_3, x_20, x_44); -x_46 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(x_20, x_45); -lean_dec(x_20); +x_45 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(x_2, x_19, x_44); +x_46 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(x_19, x_45); +lean_dec(x_19); x_47 = lean_box(0); -x_48 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6(x_35, x_43, x_47); -x_49 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(x_38, x_48); +x_48 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6(x_35, x_43, x_47); +x_49 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(x_38, x_48); lean_dec(x_38); -lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); lean_inc(x_8); -lean_inc(x_3); -x_50 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__8(x_3, x_35, x_49, x_8, x_9, x_10, x_11, x_12); +lean_inc(x_7); +lean_inc(x_2); +x_50 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8(x_2, x_35, x_49, x_7, x_8, x_9, x_10, x_11); 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; lean_object* x_57; @@ -18619,13 +22829,13 @@ lean_ctor_set(x_53, 1, x_42); lean_ctor_set(x_53, 2, x_51); lean_ctor_set(x_53, 3, x_46); x_54 = lean_unsigned_to_nat(1u); -x_55 = lean_nat_add(x_6, x_54); +x_55 = lean_nat_add(x_5, x_54); x_56 = x_53; -x_57 = lean_array_fset(x_19, x_6, x_56); -lean_dec(x_6); -x_6 = x_55; -x_7 = x_57; -x_12 = x_52; +x_57 = lean_array_fset(x_18, x_5, x_56); +lean_dec(x_5); +x_5 = x_55; +x_6 = x_57; +x_11 = x_52; goto _start; } else @@ -18634,13 +22844,12 @@ uint8_t x_59; lean_dec(x_46); lean_dec(x_42); lean_dec(x_36); -lean_dec(x_19); -lean_dec(x_11); +lean_dec(x_18); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); -lean_dec(x_6); -lean_dec(x_4); +lean_dec(x_7); +lean_dec(x_5); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); @@ -18667,7 +22876,20 @@ return x_62; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1() { +_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_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1; +x_2 = l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1; +x_3 = lean_unsigned_to_nat(666u); +x_4 = lean_unsigned_to_nat(13u); +x_5 = l_Lean_ResolveName_resolveNamespaceUsingScope___closed__3; +x_6 = l___private_Init_Util_2__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); +return x_6; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2() { _start: { lean_object* x_1; @@ -18675,206 +22897,332 @@ x_1 = lean_mk_string("array literal step"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit(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_2; -x_2 = l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3; -return x_2; -} -} -static lean_object* _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1() { -_start: +lean_object* x_7; lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36; +x_33 = lean_st_ref_get(x_5, x_6); +x_34 = lean_ctor_get(x_33, 0); +lean_inc(x_34); +x_35 = lean_ctor_get(x_34, 3); +lean_inc(x_35); +lean_dec(x_34); +x_36 = lean_ctor_get_uint8(x_35, sizeof(void*)*1); +lean_dec(x_35); +if (x_36 == 0) { -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___boxed), 1, 0); -return x_1; -} -} -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit(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; -x_7 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -x_8 = l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1; -x_9 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_7, x_8, x_2, x_3, x_4, x_5, x_6); -x_10 = lean_ctor_get(x_1, 1); -lean_inc(x_10); -if (lean_obj_tag(x_10) == 0) -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; -lean_dec(x_1); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; -x_13 = l_unreachable_x21___rarg(x_12); -x_14 = lean_apply_5(x_13, x_2, x_3, x_4, x_5, x_11); -return x_14; +lean_object* x_37; +x_37 = lean_ctor_get(x_33, 1); +lean_inc(x_37); +lean_dec(x_33); +x_7 = x_37; +goto block_32; } 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; -x_15 = lean_ctor_get(x_9, 1); -lean_inc(x_15); -lean_dec(x_9); -x_16 = lean_ctor_get(x_10, 0); +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_33, 1); +lean_inc(x_38); +lean_dec(x_33); +x_39 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_40 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_39, x_2, x_3, x_4, x_5, x_38); +x_41 = lean_ctor_get(x_40, 0); +lean_inc(x_41); +x_42 = lean_unbox(x_41); +lean_dec(x_41); +if (x_42 == 0) +{ +lean_object* x_43; +x_43 = lean_ctor_get(x_40, 1); +lean_inc(x_43); +lean_dec(x_40); +x_7 = x_43; +goto block_32; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; +x_44 = lean_ctor_get(x_40, 1); +lean_inc(x_44); +lean_dec(x_40); +x_45 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4; +x_46 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_39, x_45, x_2, x_3, x_4, x_5, x_44); +x_47 = lean_ctor_get(x_46, 1); +lean_inc(x_47); +lean_dec(x_46); +x_7 = x_47; +goto block_32; +} +} +block_32: +{ +lean_object* x_8; +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; +lean_dec(x_1); +x_9 = l___private_Lean_Meta_Basic_9__isClassQuick_x3f___main___closed__1; +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1; +x_11 = lean_panic_fn(x_9, x_10); +x_12 = lean_apply_5(x_11, x_2, x_3, x_4, x_5, x_7); +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; +x_13 = lean_ctor_get(x_8, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_8, 1); +lean_inc(x_14); +lean_dec(x_8); +x_15 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_collectArraySizes(x_1); +x_16 = lean_ctor_get(x_1, 0); lean_inc(x_16); -x_17 = lean_ctor_get(x_10, 1); -lean_inc(x_17); -x_18 = l___private_Lean_Meta_Match_Match_32__collectArraySizes(x_1); -x_19 = lean_ctor_get(x_1, 0); -lean_inc(x_19); -x_20 = l_Lean_Expr_fvarId_x21(x_16); -x_21 = l_Lean_Meta_mkArrow___rarg___closed__2; -x_22 = l_Lean_Meta_caseValue___closed__2; +x_17 = l_Lean_Expr_fvarId_x21(x_13); +x_18 = l_Lean_Meta_mkArrow___rarg___closed__2; +x_19 = l_Lean_Meta_caseValue___closed__2; lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_2); -lean_inc(x_18); -x_23 = l_Lean_Meta_caseArraySizes(x_19, x_20, x_18, x_21, x_22, x_2, x_3, x_4, x_5, x_15); -if (lean_obj_tag(x_23) == 0) +lean_inc(x_15); +x_20 = l_Lean_Meta_caseArraySizes(x_16, x_17, x_15, x_18, x_19, x_2, x_3, x_4, x_5, x_7); +if (lean_obj_tag(x_20) == 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; -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 = x_24; -x_27 = lean_unsigned_to_nat(0u); -x_28 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__9___boxed), 12, 7); -lean_closure_set(x_28, 0, x_1); -lean_closure_set(x_28, 1, x_10); -lean_closure_set(x_28, 2, x_16); -lean_closure_set(x_28, 3, x_17); -lean_closure_set(x_28, 4, x_18); -lean_closure_set(x_28, 5, x_27); -lean_closure_set(x_28, 6, x_26); -x_29 = x_28; -x_30 = lean_apply_5(x_29, x_2, x_3, x_4, x_5, x_25); -return x_30; +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_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 = x_21; +x_24 = lean_unsigned_to_nat(0u); +x_25 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__9___boxed), 11, 6); +lean_closure_set(x_25, 0, x_1); +lean_closure_set(x_25, 1, x_13); +lean_closure_set(x_25, 2, x_14); +lean_closure_set(x_25, 3, x_15); +lean_closure_set(x_25, 4, x_24); +lean_closure_set(x_25, 5, x_23); +x_26 = x_25; +x_27 = lean_apply_5(x_26, x_2, x_3, x_4, x_5, x_22); +return x_27; } else { -uint8_t x_31; -lean_dec(x_18); -lean_dec(x_17); -lean_dec(x_16); -lean_dec(x_10); +uint8_t x_28; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); lean_dec(x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_31 = !lean_is_exclusive(x_23); -if (x_31 == 0) +x_28 = !lean_is_exclusive(x_20); +if (x_28 == 0) { -return x_23; +return x_20; } else { -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_23, 0); -x_33 = lean_ctor_get(x_23, 1); -lean_inc(x_33); -lean_inc(x_32); -lean_dec(x_23); -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_object* x_29; lean_object* x_30; lean_object* x_31; +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_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); +return x_31; } } } } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2___boxed(lean_object* x_1, lean_object* x_2) { +} +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__2(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__2(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__4(x_1, x_2, x_3); +x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__4(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__5(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__5(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__6(x_1, x_2, x_3); +x_4 = l_List_filterAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__6(x_1, x_2, x_3); lean_dec(x_1); return x_4; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7___boxed(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__7(x_1, x_2); +x_3 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__7(x_1, x_2); lean_dec(x_1); return x_3; } } -lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___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, lean_object* x_12) { +lean_object* l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___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: { -lean_object* x_13; -x_13 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_35__processArrayLit___spec__9(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_object* x_12; +x_12 = l_Array_umapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__9(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_4); +return x_12; } } -lean_object* l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___boxed(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern_match__1___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) +{ +lean_object* x_5; +lean_dec(x_3); +lean_dec(x_2); +x_5 = lean_apply_1(x_4, x_1); +return x_5; +} +else +{ +lean_object* x_6; +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +if (lean_obj_tag(x_6) == 3) +{ +lean_object* x_7; +x_7 = lean_ctor_get(x_6, 0); +lean_inc(x_7); +lean_dec(x_6); +if (lean_obj_tag(x_7) == 9) +{ +lean_object* x_8; +x_8 = lean_ctor_get(x_7, 0); +lean_inc(x_8); +if (lean_obj_tag(x_8) == 0) +{ +lean_object* x_9; uint64_t x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; +lean_dec(x_4); +x_9 = lean_ctor_get(x_1, 1); +lean_inc(x_9); +lean_dec(x_1); +x_10 = lean_ctor_get_uint64(x_7, sizeof(void*)*1); +lean_dec(x_7); +x_11 = lean_ctor_get(x_8, 0); +lean_inc(x_11); +lean_dec(x_8); +x_12 = lean_unsigned_to_nat(0u); +x_13 = lean_nat_dec_eq(x_11, x_12); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_2); +x_14 = lean_unsigned_to_nat(1u); +x_15 = lean_nat_sub(x_11, x_14); +lean_dec(x_11); +x_16 = lean_box_uint64(x_10); +x_17 = lean_apply_3(x_3, x_15, x_16, x_9); +return x_17; +} +else +{ +lean_object* x_18; lean_object* x_19; +lean_dec(x_11); +lean_dec(x_3); +x_18 = lean_box_uint64(x_10); +x_19 = lean_apply_2(x_2, x_18, x_9); +return x_19; +} +} +else +{ +lean_object* x_20; +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +x_20 = lean_apply_1(x_4, x_1); +return x_20; +} +} +else +{ +lean_object* x_21; +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +x_21 = lean_apply_1(x_4, x_1); +return x_21; +} +} +else +{ +lean_object* x_22; +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +x_22 = lean_apply_1(x_4, x_1); +return x_22; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern_match__1(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1(x_1); -lean_dec(x_1); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern_match__1___rarg), 4, 0); return x_2; } } -static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1() { +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; @@ -18884,12 +23232,12 @@ x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2() { +static lean_object* _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1; +x_2 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1; x_3 = lean_alloc_ctor(2, 4, 0); lean_ctor_set(x_3, 0, x_2); lean_ctor_set(x_3, 1, x_1); @@ -18898,7 +23246,7 @@ lean_ctor_set(x_3, 3, x_1); return x_3; } } -lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(lean_object* x_1) { +lean_object* l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -18926,7 +23274,7 @@ x_9 = lean_ctor_get(x_4, 3); lean_inc(x_9); x_10 = lean_ctor_get(x_4, 4); lean_inc(x_10); -x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(x_5); +x_11 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(x_5); if (lean_obj_tag(x_10) == 0) { lean_dec(x_9); @@ -19013,7 +23361,7 @@ else lean_object* x_35; lean_dec(x_25); lean_free_object(x_12); -x_35 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +x_35 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; lean_ctor_set(x_10, 0, x_35); lean_ctor_set(x_1, 1, x_11); return x_1; @@ -19061,7 +23409,7 @@ else lean_object* x_48; lean_object* x_49; lean_dec(x_37); lean_free_object(x_12); -x_48 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +x_48 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; x_49 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_49, 0, x_48); lean_ctor_set(x_49, 1, x_36); @@ -19130,7 +23478,7 @@ else lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_dec(x_52); lean_free_object(x_12); -x_64 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +x_64 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; if (lean_is_scalar(x_51)) { x_65 = lean_alloc_ctor(1, 2, 0); } else { @@ -19301,7 +23649,7 @@ else { lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_80); -x_93 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +x_93 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; if (lean_is_scalar(x_79)) { x_94 = lean_alloc_ctor(1, 2, 0); } else { @@ -19430,7 +23778,7 @@ x_109 = lean_ctor_get(x_104, 3); lean_inc(x_109); x_110 = lean_ctor_get(x_104, 4); lean_inc(x_110); -x_111 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(x_105); +x_111 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(x_105); if (lean_obj_tag(x_110) == 0) { lean_object* x_112; @@ -19545,7 +23893,7 @@ else lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_dec(x_120); lean_dec(x_115); -x_134 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2; +x_134 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2; if (lean_is_scalar(x_119)) { x_135 = lean_alloc_ctor(1, 2, 0); } else { @@ -19653,7 +24001,7 @@ return x_143; } } } -lean_object* l___private_Lean_Meta_Match_Match_36__expandNatValuePattern(lean_object* x_1) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern(lean_object* x_1) { _start: { uint8_t x_2; @@ -19662,7 +24010,7 @@ if (x_2 == 0) { lean_object* x_3; lean_object* x_4; x_3 = lean_ctor_get(x_1, 2); -x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(x_3); +x_4 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(x_3); lean_ctor_set(x_1, 2, x_4); return x_1; } @@ -19678,7 +24026,7 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_dec(x_1); -x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1(x_7); +x_9 = l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1(x_7); x_10 = lean_alloc_ctor(0, 4, 0); lean_ctor_set(x_10, 0, x_5); lean_ctor_set(x_10, 1, x_6); @@ -19688,7 +24036,7 @@ return x_10; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1() { _start: { lean_object* x_1; @@ -19696,66 +24044,129 @@ x_1 = lean_mk_string(" step"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(lean_object* x_1, 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_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_1); -x_4 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_4, 0, x_3); -x_5 = l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3; -x_6 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_6, 0, x_4); -lean_ctor_set(x_6, 1, x_5); -return x_6; -} -} -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep(lean_object* x_1, 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, 0); +lean_inc(x_9); +x_10 = lean_ctor_get(x_9, 3); +lean_inc(x_10); +lean_dec(x_9); +x_11 = lean_ctor_get_uint8(x_10, sizeof(void*)*1); +lean_dec(x_10); +if (x_11 == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; -x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___boxed), 2, 1); -lean_closure_set(x_8, 0, x_1); -x_9 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; -x_10 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_9, x_8, x_3, x_4, x_5, x_6, x_7); -return x_10; -} -} -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: +uint8_t x_12; +lean_dec(x_1); +x_12 = !lean_is_exclusive(x_8); +if (x_12 == 0) { -lean_object* x_3; -x_3 = l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1(x_1, x_2); -lean_dec(x_2); -return x_3; +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_8, 0); +lean_dec(x_13); +x_14 = lean_box(0); +lean_ctor_set(x_8, 0, x_14); +return x_8; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_8, 1); +lean_inc(x_15); +lean_dec(x_8); +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; } } -lean_object* l___private_Lean_Meta_Match_Match_37__traceStep___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +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_8, 1); +lean_inc(x_18); +lean_dec(x_8); +x_19 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; +x_20 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_isLevelDefEq___spec__1(x_19, x_3, x_4, x_5, x_6, x_18); +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) +{ +uint8_t x_23; +lean_dec(x_1); +x_23 = !lean_is_exclusive(x_20); +if (x_23 == 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; +} +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; +} +} +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; +x_29 = lean_ctor_get(x_20, 1); +lean_inc(x_29); +lean_dec(x_20); +x_30 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_30, 0, x_1); +x_31 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_31, 0, x_30); +x_32 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3; +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_addTrace___at_Lean_Meta_isLevelDefEq___spec__3(x_19, x_33, x_3, x_4, x_5, x_6, x_29); +return x_34; +} +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___boxed(lean_object* x_1, 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_Meta_Match_Match_37__traceStep(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(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); @@ -19764,7 +24175,7 @@ lean_dec(x_2); return x_8; } } -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___lambda__1(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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___lambda__1(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) { _start: { if (x_3 == 0) @@ -19835,38 +24246,38 @@ return x_18; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_38__traceState___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; +x_1 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; x_2 = lean_alloc_closure((void*)(l_Lean_Meta_isLevelDefEq___rarg___lambda__2___boxed), 7, 1); lean_closure_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_38__traceState___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = l_Lean_Meta_isLevelDefEq___rarg___closed__2; -x_2 = l___private_Lean_Meta_Match_Match_38__traceState___closed__1; +x_2 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1; x_3 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); lean_closure_set(x_3, 0, x_1); lean_closure_set(x_3, 1, x_2); return x_3; } } -lean_object* l___private_Lean_Meta_Match_Match_38__traceState(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState(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; -x_7 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; +x_7 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; lean_inc(x_1); -x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_38__traceState___lambda__1___boxed), 8, 2); +x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___lambda__1___boxed), 8, 2); lean_closure_set(x_8, 0, x_1); lean_closure_set(x_8, 1, x_7); -x_9 = l___private_Lean_Meta_Match_Match_38__traceState___closed__2; +x_9 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2; x_10 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); lean_closure_set(x_10, 0, x_9); lean_closure_set(x_10, 1, x_8); @@ -19874,17 +24285,17 @@ x_11 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_10, x_2, x_3, x_4, x_5, x_6); return x_11; } } -lean_object* l___private_Lean_Meta_Match_Match_38__traceState___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___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: { uint8_t x_9; lean_object* x_10; x_9 = lean_unbox(x_3); lean_dec(x_3); -x_10 = l___private_Lean_Meta_Match_Match_38__traceState___lambda__1(x_1, x_2, x_9, x_4, x_5, x_6, x_7, x_8); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___lambda__1(x_1, x_2, x_9, x_4, x_5, x_6, x_7, x_8); return x_10; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1() { _start: { lean_object* x_1; @@ -19892,55 +24303,48 @@ x_1 = lean_mk_string("failed to compile pattern matching, stuck at"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3() { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___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_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___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; lean_object* x_10; +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_7 = l_Lean_indentD(x_1); -x_8 = l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3; +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2; x_9 = lean_alloc_ctor(10, 2, 0); lean_ctor_set(x_9, 0, x_8); lean_ctor_set(x_9, 1, x_7); -x_10 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_9, x_2, x_3, x_4, x_5, x_6); -return x_10; +x_10 = l_Lean_Meta_throwTacticEx___rarg___closed__6; +x_11 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_11, 0, x_9); +lean_ctor_set(x_11, 1, x_10); +x_12 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_11, x_2, x_3, x_4, x_5, x_6); +return x_12; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___boxed), 6, 0); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___boxed), 6, 0); return x_1; } } -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported(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_inc(x_1); x_7 = lean_alloc_closure((void*)(l_Lean_Meta_Match_Problem_toMessageData), 6, 1); lean_closure_set(x_7, 0, x_1); -x_8 = l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1; +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1; x_9 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); lean_closure_set(x_9, 0, x_7); lean_closure_set(x_9, 1, x_8); @@ -19948,11 +24352,11 @@ x_10 = l_Lean_Meta_Match_withGoalOf___rarg(x_1, x_9, x_2, x_3, x_4, x_5, x_6); return x_10; } } -lean_object* l___private_Lean_Meta_Match_Match_39__throwNonSupported___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___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___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6); +x_7 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___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_3); @@ -19960,6 +24364,39 @@ lean_dec(x_2); return x_7; } } +lean_object* l_Lean_Meta_Match_isCurrVarInductive_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +x_7 = lean_ctor_get(x_1, 1); +lean_inc(x_7); +lean_dec(x_1); +x_8 = lean_apply_2(x_3, x_6, x_7); +return x_8; +} +} +} +lean_object* l_Lean_Meta_Match_isCurrVarInductive_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_isCurrVarInductive_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_Meta_Match_isCurrVarInductive___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: { @@ -20020,7 +24457,7 @@ lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean x_11 = lean_ctor_get(x_7, 0); lean_inc(x_11); lean_dec(x_7); -x_12 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_25__getInductiveVal_x3f), 6, 1); +x_12 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getInductiveVal_x3f), 6, 1); lean_closure_set(x_12, 0, x_11); x_13 = l_Lean_Meta_Match_isCurrVarInductive___closed__1; x_14 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Meta_Lean_MonadLCtx___spec__2___rarg), 7, 2); @@ -20044,7 +24481,23 @@ lean_dec(x_1); return x_7; } } -lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process_match__1___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_apply_1(x_2, x_1); +return x_3; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___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; uint8_t x_10; @@ -20073,7 +24526,7 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_14 = l___private_Lean_Meta_Match_Match_40__process___main(x_13, x_3, x_4, x_5, x_6, x_7, x_8); +x_14 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process(x_13, x_3, x_4, x_5, x_6, x_7, x_8); if (lean_obj_tag(x_14) == 0) { lean_object* x_15; lean_object* x_16; lean_object* x_17; @@ -20117,7 +24570,7 @@ return x_22; } } } -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___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* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___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) { _start: { lean_object* x_8; lean_object* x_9; uint8_t x_10; @@ -20155,15 +24608,15 @@ return x_16; } } } -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2(lean_object* x_1) { +lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___rarg___boxed), 7, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___rarg___boxed), 7, 0); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1() { _start: { lean_object* x_1; @@ -20171,7 +24624,7 @@ x_1 = lean_mk_string("variable"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2() { _start: { lean_object* x_1; @@ -20179,7 +24632,7 @@ x_1 = lean_mk_string("non variable"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3() { _start: { lean_object* x_1; @@ -20187,7 +24640,7 @@ x_1 = lean_mk_string("nat value to constructor"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__4() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4() { _start: { lean_object* x_1; @@ -20195,7 +24648,7 @@ x_1 = lean_mk_string("as-pattern"); return x_1; } } -lean_object* l___private_Lean_Meta_Match_Match_40__process___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process(lean_object* x_1, 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; @@ -20232,7 +24685,7 @@ lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_20 = l___private_Lean_Meta_Match_Match_38__traceState(x_1, x_3, x_4, x_5, x_6, x_7); +x_20 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState(x_1, x_3, x_4, x_5, x_6, x_7); if (lean_obj_tag(x_20) == 0) { lean_object* x_21; lean_object* x_22; @@ -20247,245 +24700,193 @@ lean_inc(x_1); x_22 = l_Lean_Meta_Match_isCurrVarInductive(x_1, x_3, x_4, x_5, x_6, x_21); if (lean_obj_tag(x_22) == 0) { -lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_60; +lean_object* x_23; lean_object* x_24; uint8_t x_25; uint8_t x_69; 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_60 = l___private_Lean_Meta_Match_Match_4__isDone(x_1); -if (x_60 == 0) +x_69 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone(x_1); +if (x_69 == 0) { -uint8_t x_61; -x_61 = l___private_Lean_Meta_Match_Match_6__hasAsPattern(x_1); -if (x_61 == 0) +uint8_t x_70; +x_70 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern(x_1); +if (x_70 == 0) { -uint8_t x_62; -x_62 = l___private_Lean_Meta_Match_Match_16__isNatValueTransition(x_1); -if (x_62 == 0) +uint8_t x_71; +x_71 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition(x_1); +if (x_71 == 0) { -uint8_t x_63; -x_63 = l___private_Lean_Meta_Match_Match_5__isNextVar(x_1); -if (x_63 == 0) +uint8_t x_72; +x_72 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(x_1); +if (x_72 == 0) { -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_dec(x_23); -x_64 = l___private_Lean_Meta_Match_Match_40__process___main___closed__2; -x_65 = l___private_Lean_Meta_Match_Match_37__traceStep(x_64, x_2, x_3, x_4, x_5, x_6, x_24); -x_66 = lean_ctor_get(x_65, 1); -lean_inc(x_66); -lean_dec(x_65); +x_73 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2; +x_74 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_73, x_2, x_3, x_4, x_5, x_6, x_24); +x_75 = lean_ctor_get(x_74, 1); +lean_inc(x_75); +lean_dec(x_74); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_67 = l___private_Lean_Meta_Match_Match_28__processNonVariable(x_1, x_3, x_4, x_5, x_6, x_66); -if (lean_obj_tag(x_67) == 0) +x_76 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable(x_1, x_3, x_4, x_5, x_6, x_75); +if (lean_obj_tag(x_76) == 0) { -lean_object* x_68; lean_object* x_69; -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_1 = x_68; -x_7 = x_69; +lean_object* x_77; lean_object* x_78; +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_1 = x_77; +x_7 = x_78; goto _start; } else { -uint8_t x_71; +uint8_t x_80; lean_dec(x_5); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_71 = !lean_is_exclusive(x_67); -if (x_71 == 0) +x_80 = !lean_is_exclusive(x_76); +if (x_80 == 0) { -return x_67; +return x_76; } else { -lean_object* x_72; lean_object* x_73; lean_object* x_74; -x_72 = lean_ctor_get(x_67, 0); -x_73 = lean_ctor_get(x_67, 1); -lean_inc(x_73); -lean_inc(x_72); -lean_dec(x_67); -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; -x_75 = lean_unbox(x_23); -lean_dec(x_23); -if (x_75 == 0) -{ -lean_object* x_76; -x_76 = lean_box(0); -x_25 = x_76; -goto block_59; -} -else -{ -uint8_t x_77; -x_77 = l___private_Lean_Meta_Match_Match_13__isConstructorTransition(x_1); -if (x_77 == 0) -{ -lean_object* x_78; -x_78 = lean_box(0); -x_25 = x_78; -goto block_59; -} -else -{ -lean_object* x_79; -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_79 = l___private_Lean_Meta_Match_Match_27__processConstructor(x_1, x_3, x_4, x_5, x_6, x_24); -if (lean_obj_tag(x_79) == 0) -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; -x_80 = lean_ctor_get(x_79, 0); -lean_inc(x_80); -x_81 = lean_ctor_get(x_79, 1); +lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = lean_ctor_get(x_76, 0); +x_82 = lean_ctor_get(x_76, 1); +lean_inc(x_82); lean_inc(x_81); -lean_dec(x_79); -x_82 = lean_unsigned_to_nat(0u); -x_83 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_80, x_82, x_2, x_3, x_4, x_5, x_6, x_81); -lean_dec(x_80); +lean_dec(x_76); +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_dec(x_5); -lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -x_84 = !lean_is_exclusive(x_79); +x_84 = lean_unbox(x_23); +lean_dec(x_23); if (x_84 == 0) { -return x_79; +uint8_t x_85; +x_85 = 0; +x_25 = x_85; +goto block_68; } else { -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_79, 0); -x_86 = lean_ctor_get(x_79, 1); -lean_inc(x_86); -lean_inc(x_85); -lean_dec(x_79); -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; -} -} -} +uint8_t x_86; +x_86 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition(x_1); +x_25 = x_86; +goto block_68; } } } else { -lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; +lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_dec(x_23); -x_88 = l___private_Lean_Meta_Match_Match_40__process___main___closed__3; -x_89 = l___private_Lean_Meta_Match_Match_37__traceStep(x_88, x_2, x_3, x_4, x_5, x_6, x_24); -x_90 = lean_ctor_get(x_89, 1); -lean_inc(x_90); -lean_dec(x_89); -x_91 = l___private_Lean_Meta_Match_Match_36__expandNatValuePattern(x_1); -x_1 = x_91; -x_7 = x_90; +x_87 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3; +x_88 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_87, x_2, x_3, x_4, x_5, x_6, x_24); +x_89 = lean_ctor_get(x_88, 1); +lean_inc(x_89); +lean_dec(x_88); +x_90 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern(x_1); +x_1 = x_90; +x_7 = x_89; goto _start; } } else { -lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; +lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_dec(x_23); -x_93 = l___private_Lean_Meta_Match_Match_40__process___main___closed__4; -x_94 = l___private_Lean_Meta_Match_Match_37__traceStep(x_93, x_2, x_3, x_4, x_5, x_6, x_24); -x_95 = lean_ctor_get(x_94, 1); -lean_inc(x_95); -lean_dec(x_94); +x_92 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4; +x_93 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_92, x_2, x_3, x_4, x_5, x_6, x_24); +x_94 = lean_ctor_get(x_93, 1); +lean_inc(x_94); +lean_dec(x_93); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_96 = l___private_Lean_Meta_Match_Match_19__processAsPattern(x_1, x_3, x_4, x_5, x_6, x_95); -if (lean_obj_tag(x_96) == 0) +x_95 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern(x_1, x_3, x_4, x_5, x_6, x_94); +if (lean_obj_tag(x_95) == 0) { -lean_object* x_97; lean_object* x_98; -x_97 = lean_ctor_get(x_96, 0); +lean_object* x_96; lean_object* x_97; +x_96 = lean_ctor_get(x_95, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_95, 1); lean_inc(x_97); -x_98 = lean_ctor_get(x_96, 1); -lean_inc(x_98); -lean_dec(x_96); -x_1 = x_97; -x_7 = x_98; +lean_dec(x_95); +x_1 = x_96; +x_7 = x_97; goto _start; } else { -uint8_t x_100; +uint8_t x_99; lean_dec(x_5); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_100 = !lean_is_exclusive(x_96); -if (x_100 == 0) +x_99 = !lean_is_exclusive(x_95); +if (x_99 == 0) { -return x_96; +return x_95; } else { -lean_object* x_101; lean_object* x_102; lean_object* x_103; -x_101 = lean_ctor_get(x_96, 0); -x_102 = lean_ctor_get(x_96, 1); -lean_inc(x_102); +lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_100 = lean_ctor_get(x_95, 0); +x_101 = lean_ctor_get(x_95, 1); lean_inc(x_101); -lean_dec(x_96); -x_103 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_103, 0, x_101); -lean_ctor_set(x_103, 1, x_102); +lean_inc(x_100); +lean_dec(x_95); +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; +} +} +} +} +else +{ +lean_object* x_103; +lean_dec(x_23); +x_103 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf(x_1, x_2, x_3, x_4, x_5, x_6, x_24); return x_103; } -} -} -} -else +block_68: { -lean_object* x_104; -lean_dec(x_23); -x_104 = l___private_Lean_Meta_Match_Match_18__processLeaf(x_1, x_2, x_3, x_4, x_5, x_6, x_24); -return x_104; -} -block_59: +if (x_25 == 0) { uint8_t x_26; -lean_dec(x_25); -x_26 = l___private_Lean_Meta_Match_Match_12__isVariableTransition(x_1); +x_26 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition(x_1); if (x_26 == 0) { uint8_t x_27; -x_27 = l___private_Lean_Meta_Match_Match_14__isValueTransition(x_1); +x_27 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition(x_1); if (x_27 == 0) { uint8_t x_28; -x_28 = l___private_Lean_Meta_Match_Match_15__isArrayLitTransition(x_1); +x_28 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition(x_1); if (x_28 == 0) { lean_object* x_29; -x_29 = l___private_Lean_Meta_Match_Match_39__throwNonSupported(x_1, x_3, x_4, x_5, x_6, x_24); +x_29 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported(x_1, x_3, x_4, x_5, x_6, x_24); return x_29; } else @@ -20495,7 +24896,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_30 = l___private_Lean_Meta_Match_Match_35__processArrayLit(x_1, x_3, x_4, x_5, x_6, x_24); +x_30 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit(x_1, x_3, x_4, x_5, x_6, x_24); if (lean_obj_tag(x_30) == 0) { lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; @@ -20505,7 +24906,7 @@ x_32 = lean_ctor_get(x_30, 1); lean_inc(x_32); lean_dec(x_30); x_33 = lean_unsigned_to_nat(0u); -x_34 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_31, x_33, x_2, x_3, x_4, x_5, x_6, x_32); +x_34 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_31, x_33, x_2, x_3, x_4, x_5, x_6, x_32); lean_dec(x_31); return x_34; } @@ -20544,7 +24945,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_39 = l___private_Lean_Meta_Match_Match_31__processValue(x_1, x_3, x_4, x_5, x_6, x_24); +x_39 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue(x_1, x_3, x_4, x_5, x_6, x_24); if (lean_obj_tag(x_39) == 0) { lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; @@ -20554,7 +24955,7 @@ x_41 = lean_ctor_get(x_39, 1); lean_inc(x_41); lean_dec(x_39); x_42 = lean_unsigned_to_nat(0u); -x_43 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_40, x_42, x_2, x_3, x_4, x_5, x_6, x_41); +x_43 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_40, x_42, x_2, x_3, x_4, x_5, x_6, x_41); lean_dec(x_40); return x_43; } @@ -20589,8 +24990,8 @@ return x_47; else { lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; -x_48 = l___private_Lean_Meta_Match_Match_40__process___main___closed__1; -x_49 = l___private_Lean_Meta_Match_Match_37__traceStep(x_48, x_2, x_3, x_4, x_5, x_6, x_24); +x_48 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1; +x_49 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_48, x_2, x_3, x_4, x_5, x_6, x_24); x_50 = lean_ctor_get(x_49, 1); lean_inc(x_50); lean_dec(x_49); @@ -20598,7 +24999,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_51 = l___private_Lean_Meta_Match_Match_20__processVariable(x_1, x_3, x_4, x_5, x_6, x_50); +x_51 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable(x_1, x_3, x_4, x_5, x_6, x_50); if (lean_obj_tag(x_51) == 0) { lean_object* x_52; lean_object* x_53; @@ -20639,615 +25040,661 @@ return x_58; } } } +else +{ +lean_object* x_59; +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_59 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor(x_1, x_3, x_4, x_5, x_6, x_24); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; +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_unsigned_to_nat(0u); +x_63 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_60, x_62, x_2, x_3, x_4, x_5, x_6, x_61); +lean_dec(x_60); +return x_63; } else { -uint8_t x_105; +uint8_t x_64; +lean_dec(x_5); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +x_64 = !lean_is_exclusive(x_59); +if (x_64 == 0) +{ +return x_59; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; +x_65 = lean_ctor_get(x_59, 0); +x_66 = lean_ctor_get(x_59, 1); +lean_inc(x_66); +lean_inc(x_65); +lean_dec(x_59); +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 +{ +uint8_t x_104; lean_dec(x_5); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_105 = !lean_is_exclusive(x_22); -if (x_105 == 0) +x_104 = !lean_is_exclusive(x_22); +if (x_104 == 0) { return x_22; } else { -lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_106 = lean_ctor_get(x_22, 0); -x_107 = lean_ctor_get(x_22, 1); -lean_inc(x_107); +lean_object* x_105; lean_object* x_106; lean_object* x_107; +x_105 = lean_ctor_get(x_22, 0); +x_106 = lean_ctor_get(x_22, 1); lean_inc(x_106); +lean_inc(x_105); lean_dec(x_22); -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; +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; } } } else { -uint8_t x_109; +uint8_t x_108; lean_dec(x_5); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_109 = !lean_is_exclusive(x_20); -if (x_109 == 0) +x_108 = !lean_is_exclusive(x_20); +if (x_108 == 0) { return x_20; } else { -lean_object* x_110; lean_object* x_111; lean_object* x_112; -x_110 = lean_ctor_get(x_20, 0); -x_111 = lean_ctor_get(x_20, 1); -lean_inc(x_111); +lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_109 = lean_ctor_get(x_20, 0); +x_110 = lean_ctor_get(x_20, 1); lean_inc(x_110); +lean_inc(x_109); lean_dec(x_20); -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; +x_111 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_111, 0, x_109); +lean_ctor_set(x_111, 1, x_110); +return x_111; } } } else { -lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_object* x_116; +lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; lean_dec(x_5); -x_113 = lean_unsigned_to_nat(1u); -x_114 = lean_nat_add(x_9, x_113); +x_112 = lean_unsigned_to_nat(1u); +x_113 = lean_nat_add(x_9, x_112); lean_dec(x_9); -x_115 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_115, 0, x_8); -lean_ctor_set(x_115, 1, x_114); -lean_ctor_set(x_115, 2, x_10); -lean_ctor_set(x_115, 3, x_11); +x_114 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_114, 0, x_8); +lean_ctor_set(x_114, 1, x_113); +lean_ctor_set(x_114, 2, x_10); +lean_ctor_set(x_114, 3, x_11); lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_116 = l___private_Lean_Meta_Match_Match_38__traceState(x_1, x_3, x_4, x_115, x_6, x_7); -if (lean_obj_tag(x_116) == 0) +x_115 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState(x_1, x_3, x_4, x_114, x_6, x_7); +if (lean_obj_tag(x_115) == 0) { -lean_object* x_117; lean_object* x_118; -x_117 = lean_ctor_get(x_116, 1); -lean_inc(x_117); -lean_dec(x_116); +lean_object* x_116; lean_object* x_117; +x_116 = lean_ctor_get(x_115, 1); +lean_inc(x_116); +lean_dec(x_115); lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); lean_inc(x_1); -x_118 = l_Lean_Meta_Match_isCurrVarInductive(x_1, x_3, x_4, x_115, x_6, x_117); -if (lean_obj_tag(x_118) == 0) +x_117 = l_Lean_Meta_Match_isCurrVarInductive(x_1, x_3, x_4, x_114, x_6, x_116); +if (lean_obj_tag(x_117) == 0) { -lean_object* x_119; lean_object* x_120; lean_object* x_121; uint8_t x_156; -x_119 = lean_ctor_get(x_118, 0); +lean_object* x_118; lean_object* x_119; uint8_t x_120; uint8_t x_164; +x_118 = lean_ctor_get(x_117, 0); +lean_inc(x_118); +x_119 = lean_ctor_get(x_117, 1); lean_inc(x_119); -x_120 = lean_ctor_get(x_118, 1); -lean_inc(x_120); +lean_dec(x_117); +x_164 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isDone(x_1); +if (x_164 == 0) +{ +uint8_t x_165; +x_165 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_hasAsPattern(x_1); +if (x_165 == 0) +{ +uint8_t x_166; +x_166 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNatValueTransition(x_1); +if (x_166 == 0) +{ +uint8_t x_167; +x_167 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isNextVar(x_1); +if (x_167 == 0) +{ +lean_object* x_168; lean_object* x_169; lean_object* x_170; lean_object* x_171; lean_dec(x_118); -x_156 = l___private_Lean_Meta_Match_Match_4__isDone(x_1); -if (x_156 == 0) -{ -uint8_t x_157; -x_157 = l___private_Lean_Meta_Match_Match_6__hasAsPattern(x_1); -if (x_157 == 0) -{ -uint8_t x_158; -x_158 = l___private_Lean_Meta_Match_Match_16__isNatValueTransition(x_1); -if (x_158 == 0) -{ -uint8_t x_159; -x_159 = l___private_Lean_Meta_Match_Match_5__isNextVar(x_1); -if (x_159 == 0) -{ -lean_object* x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; -lean_dec(x_119); -x_160 = l___private_Lean_Meta_Match_Match_40__process___main___closed__2; -x_161 = l___private_Lean_Meta_Match_Match_37__traceStep(x_160, x_2, x_3, x_4, x_115, x_6, x_120); -x_162 = lean_ctor_get(x_161, 1); -lean_inc(x_162); -lean_dec(x_161); +x_168 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2; +x_169 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_168, x_2, x_3, x_4, x_114, x_6, x_119); +x_170 = lean_ctor_get(x_169, 1); +lean_inc(x_170); +lean_dec(x_169); lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); -x_163 = l___private_Lean_Meta_Match_Match_28__processNonVariable(x_1, x_3, x_4, x_115, x_6, x_162); -if (lean_obj_tag(x_163) == 0) +x_171 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable(x_1, x_3, x_4, x_114, x_6, x_170); +if (lean_obj_tag(x_171) == 0) { -lean_object* x_164; lean_object* x_165; -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_1 = x_164; -x_5 = x_115; -x_7 = x_165; +lean_object* x_172; lean_object* x_173; +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_1 = x_172; +x_5 = x_114; +x_7 = x_173; goto _start; } else { -lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; -lean_dec(x_115); +lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_167 = lean_ctor_get(x_163, 0); -lean_inc(x_167); -x_168 = lean_ctor_get(x_163, 1); -lean_inc(x_168); -if (lean_is_exclusive(x_163)) { - lean_ctor_release(x_163, 0); - lean_ctor_release(x_163, 1); - x_169 = x_163; -} else { - lean_dec_ref(x_163); - x_169 = lean_box(0); -} -if (lean_is_scalar(x_169)) { - x_170 = lean_alloc_ctor(1, 2, 0); -} else { - x_170 = x_169; -} -lean_ctor_set(x_170, 0, x_167); -lean_ctor_set(x_170, 1, x_168); -return x_170; -} -} -else -{ -uint8_t x_171; -x_171 = lean_unbox(x_119); -lean_dec(x_119); -if (x_171 == 0) -{ -lean_object* x_172; -x_172 = lean_box(0); -x_121 = x_172; -goto block_155; -} -else -{ -uint8_t x_173; -x_173 = l___private_Lean_Meta_Match_Match_13__isConstructorTransition(x_1); -if (x_173 == 0) -{ -lean_object* x_174; -x_174 = lean_box(0); -x_121 = x_174; -goto block_155; -} -else -{ -lean_object* x_175; -lean_inc(x_6); -lean_inc(x_115); -lean_inc(x_4); -lean_inc(x_3); -x_175 = l___private_Lean_Meta_Match_Match_27__processConstructor(x_1, x_3, x_4, x_115, x_6, x_120); -if (lean_obj_tag(x_175) == 0) -{ -lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; -x_176 = lean_ctor_get(x_175, 0); +x_175 = lean_ctor_get(x_171, 0); +lean_inc(x_175); +x_176 = lean_ctor_get(x_171, 1); lean_inc(x_176); -x_177 = lean_ctor_get(x_175, 1); -lean_inc(x_177); -lean_dec(x_175); -x_178 = lean_unsigned_to_nat(0u); -x_179 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_176, x_178, x_2, x_3, x_4, x_115, x_6, x_177); -lean_dec(x_176); -return x_179; +if (lean_is_exclusive(x_171)) { + lean_ctor_release(x_171, 0); + lean_ctor_release(x_171, 1); + x_177 = x_171; +} else { + lean_dec_ref(x_171); + x_177 = lean_box(0); +} +if (lean_is_scalar(x_177)) { + x_178 = lean_alloc_ctor(1, 2, 0); +} else { + x_178 = x_177; +} +lean_ctor_set(x_178, 0, x_175); +lean_ctor_set(x_178, 1, x_176); +return x_178; +} } else { -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; -lean_dec(x_115); -lean_dec(x_6); -lean_dec(x_4); -lean_dec(x_3); -x_180 = lean_ctor_get(x_175, 0); -lean_inc(x_180); -x_181 = lean_ctor_get(x_175, 1); -lean_inc(x_181); -if (lean_is_exclusive(x_175)) { - lean_ctor_release(x_175, 0); - lean_ctor_release(x_175, 1); - x_182 = x_175; -} else { - lean_dec_ref(x_175); - 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; -} +uint8_t x_179; +x_179 = lean_unbox(x_118); +lean_dec(x_118); +if (x_179 == 0) +{ +uint8_t x_180; +x_180 = 0; +x_120 = x_180; +goto block_163; } +else +{ +uint8_t x_181; +x_181 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isConstructorTransition(x_1); +x_120 = x_181; +goto block_163; } } } else { -lean_object* x_184; lean_object* x_185; lean_object* x_186; lean_object* x_187; -lean_dec(x_119); -x_184 = l___private_Lean_Meta_Match_Match_40__process___main___closed__3; -x_185 = l___private_Lean_Meta_Match_Match_37__traceStep(x_184, x_2, x_3, x_4, x_115, x_6, x_120); -x_186 = lean_ctor_get(x_185, 1); -lean_inc(x_186); -lean_dec(x_185); -x_187 = l___private_Lean_Meta_Match_Match_36__expandNatValuePattern(x_1); -x_1 = x_187; -x_5 = x_115; -x_7 = x_186; +lean_object* x_182; lean_object* x_183; lean_object* x_184; lean_object* x_185; +lean_dec(x_118); +x_182 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3; +x_183 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_182, x_2, x_3, x_4, x_114, x_6, x_119); +x_184 = lean_ctor_get(x_183, 1); +lean_inc(x_184); +lean_dec(x_183); +x_185 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern(x_1); +x_1 = x_185; +x_5 = x_114; +x_7 = x_184; goto _start; } } else { -lean_object* x_189; lean_object* x_190; lean_object* x_191; lean_object* x_192; -lean_dec(x_119); -x_189 = l___private_Lean_Meta_Match_Match_40__process___main___closed__4; -x_190 = l___private_Lean_Meta_Match_Match_37__traceStep(x_189, x_2, x_3, x_4, x_115, x_6, x_120); -x_191 = lean_ctor_get(x_190, 1); -lean_inc(x_191); -lean_dec(x_190); +lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; +lean_dec(x_118); +x_187 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4; +x_188 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_187, x_2, x_3, x_4, x_114, x_6, x_119); +x_189 = lean_ctor_get(x_188, 1); +lean_inc(x_189); +lean_dec(x_188); lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); -x_192 = l___private_Lean_Meta_Match_Match_19__processAsPattern(x_1, x_3, x_4, x_115, x_6, x_191); -if (lean_obj_tag(x_192) == 0) +x_190 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern(x_1, x_3, x_4, x_114, x_6, x_189); +if (lean_obj_tag(x_190) == 0) { -lean_object* x_193; lean_object* x_194; -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_1 = x_193; -x_5 = x_115; -x_7 = x_194; +lean_object* x_191; lean_object* x_192; +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_1 = x_191; +x_5 = x_114; +x_7 = x_192; goto _start; } else { -lean_object* x_196; lean_object* x_197; lean_object* x_198; lean_object* x_199; -lean_dec(x_115); +lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_196 = lean_ctor_get(x_192, 0); -lean_inc(x_196); -x_197 = lean_ctor_get(x_192, 1); -lean_inc(x_197); -if (lean_is_exclusive(x_192)) { - lean_ctor_release(x_192, 0); - lean_ctor_release(x_192, 1); - x_198 = x_192; +x_194 = lean_ctor_get(x_190, 0); +lean_inc(x_194); +x_195 = lean_ctor_get(x_190, 1); +lean_inc(x_195); +if (lean_is_exclusive(x_190)) { + lean_ctor_release(x_190, 0); + lean_ctor_release(x_190, 1); + x_196 = x_190; } else { - lean_dec_ref(x_192); - x_198 = lean_box(0); + lean_dec_ref(x_190); + x_196 = lean_box(0); } -if (lean_is_scalar(x_198)) { - x_199 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_196)) { + x_197 = lean_alloc_ctor(1, 2, 0); } else { - x_199 = x_198; + x_197 = x_196; } -lean_ctor_set(x_199, 0, x_196); -lean_ctor_set(x_199, 1, x_197); -return x_199; +lean_ctor_set(x_197, 0, x_194); +lean_ctor_set(x_197, 1, x_195); +return x_197; } } } else { -lean_object* x_200; -lean_dec(x_119); -x_200 = l___private_Lean_Meta_Match_Match_18__processLeaf(x_1, x_2, x_3, x_4, x_115, x_6, x_120); -return x_200; +lean_object* x_198; +lean_dec(x_118); +x_198 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processLeaf(x_1, x_2, x_3, x_4, x_114, x_6, x_119); +return x_198; } -block_155: +block_163: +{ +if (x_120 == 0) +{ +uint8_t x_121; +x_121 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isVariableTransition(x_1); +if (x_121 == 0) { uint8_t x_122; -lean_dec(x_121); -x_122 = l___private_Lean_Meta_Match_Match_12__isVariableTransition(x_1); +x_122 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isValueTransition(x_1); if (x_122 == 0) { uint8_t x_123; -x_123 = l___private_Lean_Meta_Match_Match_14__isValueTransition(x_1); +x_123 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_isArrayLitTransition(x_1); if (x_123 == 0) { -uint8_t x_124; -x_124 = l___private_Lean_Meta_Match_Match_15__isArrayLitTransition(x_1); -if (x_124 == 0) +lean_object* x_124; +x_124 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported(x_1, x_3, x_4, x_114, x_6, x_119); +return x_124; +} +else { lean_object* x_125; -x_125 = l___private_Lean_Meta_Match_Match_39__throwNonSupported(x_1, x_3, x_4, x_115, x_6, x_120); -return x_125; -} -else -{ -lean_object* x_126; lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); -x_126 = l___private_Lean_Meta_Match_Match_35__processArrayLit(x_1, x_3, x_4, x_115, x_6, x_120); -if (lean_obj_tag(x_126) == 0) +x_125 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit(x_1, x_3, x_4, x_114, x_6, x_119); +if (lean_obj_tag(x_125) == 0) { -lean_object* x_127; lean_object* x_128; lean_object* x_129; lean_object* x_130; -x_127 = lean_ctor_get(x_126, 0); +lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; +x_126 = lean_ctor_get(x_125, 0); +lean_inc(x_126); +x_127 = lean_ctor_get(x_125, 1); lean_inc(x_127); -x_128 = lean_ctor_get(x_126, 1); -lean_inc(x_128); +lean_dec(x_125); +x_128 = lean_unsigned_to_nat(0u); +x_129 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_126, x_128, x_2, x_3, x_4, x_114, x_6, x_127); lean_dec(x_126); -x_129 = lean_unsigned_to_nat(0u); -x_130 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_127, x_129, x_2, x_3, x_4, x_115, x_6, x_128); -lean_dec(x_127); -return x_130; +return x_129; } else { -lean_object* x_131; lean_object* x_132; lean_object* x_133; lean_object* x_134; -lean_dec(x_115); +lean_object* x_130; lean_object* x_131; lean_object* x_132; lean_object* x_133; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_131 = lean_ctor_get(x_126, 0); +x_130 = lean_ctor_get(x_125, 0); +lean_inc(x_130); +x_131 = lean_ctor_get(x_125, 1); lean_inc(x_131); -x_132 = lean_ctor_get(x_126, 1); -lean_inc(x_132); -if (lean_is_exclusive(x_126)) { - lean_ctor_release(x_126, 0); - lean_ctor_release(x_126, 1); - x_133 = x_126; +if (lean_is_exclusive(x_125)) { + lean_ctor_release(x_125, 0); + lean_ctor_release(x_125, 1); + x_132 = x_125; } else { - lean_dec_ref(x_126); - x_133 = lean_box(0); + lean_dec_ref(x_125); + x_132 = lean_box(0); } -if (lean_is_scalar(x_133)) { - x_134 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_132)) { + x_133 = lean_alloc_ctor(1, 2, 0); } else { - x_134 = x_133; + x_133 = x_132; } -lean_ctor_set(x_134, 0, x_131); -lean_ctor_set(x_134, 1, x_132); -return x_134; +lean_ctor_set(x_133, 0, x_130); +lean_ctor_set(x_133, 1, x_131); +return x_133; } } } else { -lean_object* x_135; +lean_object* x_134; lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); -x_135 = l___private_Lean_Meta_Match_Match_31__processValue(x_1, x_3, x_4, x_115, x_6, x_120); -if (lean_obj_tag(x_135) == 0) +x_134 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue(x_1, x_3, x_4, x_114, x_6, x_119); +if (lean_obj_tag(x_134) == 0) { -lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; -x_136 = lean_ctor_get(x_135, 0); +lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138; +x_135 = lean_ctor_get(x_134, 0); +lean_inc(x_135); +x_136 = lean_ctor_get(x_134, 1); lean_inc(x_136); -x_137 = lean_ctor_get(x_135, 1); -lean_inc(x_137); +lean_dec(x_134); +x_137 = lean_unsigned_to_nat(0u); +x_138 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_135, x_137, x_2, x_3, x_4, x_114, x_6, x_136); lean_dec(x_135); -x_138 = lean_unsigned_to_nat(0u); -x_139 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_136, x_138, x_2, x_3, x_4, x_115, x_6, x_137); -lean_dec(x_136); -return x_139; +return x_138; } else { -lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; -lean_dec(x_115); +lean_object* x_139; lean_object* x_140; lean_object* x_141; lean_object* x_142; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_140 = lean_ctor_get(x_135, 0); +x_139 = lean_ctor_get(x_134, 0); +lean_inc(x_139); +x_140 = lean_ctor_get(x_134, 1); lean_inc(x_140); -x_141 = lean_ctor_get(x_135, 1); -lean_inc(x_141); -if (lean_is_exclusive(x_135)) { - lean_ctor_release(x_135, 0); - lean_ctor_release(x_135, 1); - x_142 = x_135; +if (lean_is_exclusive(x_134)) { + lean_ctor_release(x_134, 0); + lean_ctor_release(x_134, 1); + x_141 = x_134; } else { - lean_dec_ref(x_135); - x_142 = lean_box(0); + lean_dec_ref(x_134); + x_141 = lean_box(0); } -if (lean_is_scalar(x_142)) { - x_143 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_141)) { + x_142 = lean_alloc_ctor(1, 2, 0); } else { - x_143 = x_142; + x_142 = x_141; } -lean_ctor_set(x_143, 0, x_140); -lean_ctor_set(x_143, 1, x_141); -return x_143; +lean_ctor_set(x_142, 0, x_139); +lean_ctor_set(x_142, 1, x_140); +return x_142; } } } else { -lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; -x_144 = l___private_Lean_Meta_Match_Match_40__process___main___closed__1; -x_145 = l___private_Lean_Meta_Match_Match_37__traceStep(x_144, x_2, x_3, x_4, x_115, x_6, x_120); -x_146 = lean_ctor_get(x_145, 1); -lean_inc(x_146); -lean_dec(x_145); +lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; +x_143 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1; +x_144 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep(x_143, x_2, x_3, x_4, x_114, x_6, x_119); +x_145 = lean_ctor_get(x_144, 1); +lean_inc(x_145); +lean_dec(x_144); lean_inc(x_6); -lean_inc(x_115); +lean_inc(x_114); lean_inc(x_4); lean_inc(x_3); -x_147 = l___private_Lean_Meta_Match_Match_20__processVariable(x_1, x_3, x_4, x_115, x_6, x_146); -if (lean_obj_tag(x_147) == 0) +x_146 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable(x_1, x_3, x_4, x_114, x_6, x_145); +if (lean_obj_tag(x_146) == 0) { -lean_object* x_148; lean_object* x_149; -x_148 = lean_ctor_get(x_147, 0); +lean_object* x_147; lean_object* x_148; +x_147 = lean_ctor_get(x_146, 0); +lean_inc(x_147); +x_148 = lean_ctor_get(x_146, 1); lean_inc(x_148); -x_149 = lean_ctor_get(x_147, 1); -lean_inc(x_149); -lean_dec(x_147); -x_1 = x_148; -x_5 = x_115; -x_7 = x_149; +lean_dec(x_146); +x_1 = x_147; +x_5 = x_114; +x_7 = x_148; goto _start; } else { -lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; -lean_dec(x_115); +lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); -x_151 = lean_ctor_get(x_147, 0); +x_150 = lean_ctor_get(x_146, 0); +lean_inc(x_150); +x_151 = lean_ctor_get(x_146, 1); lean_inc(x_151); -x_152 = lean_ctor_get(x_147, 1); -lean_inc(x_152); -if (lean_is_exclusive(x_147)) { - lean_ctor_release(x_147, 0); - lean_ctor_release(x_147, 1); - x_153 = x_147; +if (lean_is_exclusive(x_146)) { + lean_ctor_release(x_146, 0); + lean_ctor_release(x_146, 1); + x_152 = x_146; } else { - lean_dec_ref(x_147); - x_153 = lean_box(0); + lean_dec_ref(x_146); + x_152 = lean_box(0); } -if (lean_is_scalar(x_153)) { - x_154 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_152)) { + x_153 = lean_alloc_ctor(1, 2, 0); } else { - x_154 = x_153; + x_153 = x_152; } -lean_ctor_set(x_154, 0, x_151); -lean_ctor_set(x_154, 1, x_152); -return x_154; +lean_ctor_set(x_153, 0, x_150); +lean_ctor_set(x_153, 1, x_151); +return x_153; +} +} +} +else +{ +lean_object* x_154; +lean_inc(x_6); +lean_inc(x_114); +lean_inc(x_4); +lean_inc(x_3); +x_154 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor(x_1, x_3, x_4, x_114, x_6, x_119); +if (lean_obj_tag(x_154) == 0) +{ +lean_object* x_155; lean_object* x_156; lean_object* x_157; lean_object* x_158; +x_155 = lean_ctor_get(x_154, 0); +lean_inc(x_155); +x_156 = lean_ctor_get(x_154, 1); +lean_inc(x_156); +lean_dec(x_154); +x_157 = lean_unsigned_to_nat(0u); +x_158 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_155, x_157, x_2, x_3, x_4, x_114, x_6, x_156); +lean_dec(x_155); +return x_158; +} +else +{ +lean_object* x_159; lean_object* x_160; lean_object* x_161; lean_object* x_162; +lean_dec(x_114); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +x_159 = lean_ctor_get(x_154, 0); +lean_inc(x_159); +x_160 = lean_ctor_get(x_154, 1); +lean_inc(x_160); +if (lean_is_exclusive(x_154)) { + lean_ctor_release(x_154, 0); + lean_ctor_release(x_154, 1); + x_161 = x_154; +} else { + lean_dec_ref(x_154); + x_161 = lean_box(0); +} +if (lean_is_scalar(x_161)) { + x_162 = lean_alloc_ctor(1, 2, 0); +} else { + x_162 = x_161; +} +lean_ctor_set(x_162, 0, x_159); +lean_ctor_set(x_162, 1, x_160); +return x_162; } } } } else { -lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; -lean_dec(x_115); +lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_201 = lean_ctor_get(x_118, 0); -lean_inc(x_201); -x_202 = lean_ctor_get(x_118, 1); -lean_inc(x_202); -if (lean_is_exclusive(x_118)) { - lean_ctor_release(x_118, 0); - lean_ctor_release(x_118, 1); - x_203 = x_118; +x_199 = lean_ctor_get(x_117, 0); +lean_inc(x_199); +x_200 = lean_ctor_get(x_117, 1); +lean_inc(x_200); +if (lean_is_exclusive(x_117)) { + lean_ctor_release(x_117, 0); + lean_ctor_release(x_117, 1); + x_201 = x_117; } else { - lean_dec_ref(x_118); - x_203 = lean_box(0); + lean_dec_ref(x_117); + x_201 = lean_box(0); } -if (lean_is_scalar(x_203)) { - x_204 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_201)) { + x_202 = lean_alloc_ctor(1, 2, 0); } else { - x_204 = x_203; + x_202 = x_201; } -lean_ctor_set(x_204, 0, x_201); -lean_ctor_set(x_204, 1, x_202); -return x_204; +lean_ctor_set(x_202, 0, x_199); +lean_ctor_set(x_202, 1, x_200); +return x_202; } } else { -lean_object* x_205; lean_object* x_206; lean_object* x_207; lean_object* x_208; -lean_dec(x_115); +lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; +lean_dec(x_114); lean_dec(x_6); lean_dec(x_4); lean_dec(x_3); lean_dec(x_1); -x_205 = lean_ctor_get(x_116, 0); -lean_inc(x_205); -x_206 = lean_ctor_get(x_116, 1); -lean_inc(x_206); -if (lean_is_exclusive(x_116)) { - lean_ctor_release(x_116, 0); - lean_ctor_release(x_116, 1); - x_207 = x_116; +x_203 = lean_ctor_get(x_115, 0); +lean_inc(x_203); +x_204 = lean_ctor_get(x_115, 1); +lean_inc(x_204); +if (lean_is_exclusive(x_115)) { + lean_ctor_release(x_115, 0); + lean_ctor_release(x_115, 1); + x_205 = x_115; } else { - lean_dec_ref(x_116); - x_207 = lean_box(0); + lean_dec_ref(x_115); + x_205 = lean_box(0); } -if (lean_is_scalar(x_207)) { - x_208 = lean_alloc_ctor(1, 2, 0); +if (lean_is_scalar(x_205)) { + x_206 = lean_alloc_ctor(1, 2, 0); } else { - x_208 = x_207; + x_206 = x_205; } -lean_ctor_set(x_208, 0, x_205); -lean_ctor_set(x_208, 1, x_206); -return x_208; +lean_ctor_set(x_206, 0, x_203); +lean_ctor_set(x_206, 1, x_204); +return x_206; } } } else { -lean_object* x_209; lean_object* x_210; uint8_t x_211; +lean_object* x_207; lean_object* x_208; uint8_t x_209; lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_1); -x_209 = l_Lean_withIncRecDepth___rarg___lambda__2___closed__2; -x_210 = l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___rarg(x_209, x_2, x_3, x_4, x_5, x_6, x_7); +x_207 = l_Lean_withIncRecDepth___rarg___lambda__2___closed__2; +x_208 = l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___rarg(x_207, 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_211 = !lean_is_exclusive(x_210); -if (x_211 == 0) +x_209 = !lean_is_exclusive(x_208); +if (x_209 == 0) { -return x_210; +return x_208; } else { -lean_object* x_212; lean_object* x_213; lean_object* x_214; -x_212 = lean_ctor_get(x_210, 0); -x_213 = lean_ctor_get(x_210, 1); -lean_inc(x_213); -lean_inc(x_212); -lean_dec(x_210); -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; +lean_object* x_210; lean_object* x_211; lean_object* x_212; +x_210 = lean_ctor_get(x_208, 0); +x_211 = lean_ctor_get(x_208, 1); +lean_inc(x_211); +lean_inc(x_210); +lean_dec(x_208); +x_212 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_212, 0, x_210); +lean_ctor_set(x_212, 1, x_211); +return x_212; } } } } -lean_object* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___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* l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___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_Array_forMAux___main___at___private_Lean_Meta_Match_Match_40__process___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l_Array_forMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_3); lean_dec(x_1); return x_9; } } -lean_object* l_Lean_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___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* l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___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_throwError___at___private_Lean_Meta_Match_Match_40__process___main___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Lean_throwError___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___spec__2___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); @@ -21256,28 +25703,11 @@ lean_dec(x_2); return x_8; } } -lean_object* l___private_Lean_Meta_Match_Match_40__process___main___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___boxed(lean_object* x_1, 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_Meta_Match_Match_40__process___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -lean_dec(x_2); -return x_8; -} -} -lean_object* l___private_Lean_Meta_Match_Match_40__process(lean_object* x_1, 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_Meta_Match_Match_40__process___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7); -return x_8; -} -} -lean_object* l___private_Lean_Meta_Match_Match_40__process___boxed(lean_object* x_1, 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_Meta_Match_Match_40__process(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean_dec(x_2); return x_8; } @@ -21300,7 +25730,7 @@ lean_dec(x_1); return x_2; } } -lean_object* l_Std_mkHashMap___at_Lean_Meta_Match_Extension_State_inhabited___spec__1(lean_object* x_1) { +lean_object* l_Std_mkHashMap___at_Lean_Meta_Match_Extension_State_map___default___spec__1(lean_object* x_1) { _start: { lean_object* x_2; @@ -21308,7 +25738,7 @@ x_2 = l_Std_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Extension_State_inhabited___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_Extension_State_map___default___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -21317,12 +25747,12 @@ x_2 = l_Std_mkHashMapImp___rarg(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_Extension_State_inhabited___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_Extension_State_map___default___closed__2() { _start: { uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; x_1 = 1; -x_2 = l_Lean_Meta_Match_Extension_State_inhabited___closed__1; +x_2 = l_Lean_Meta_Match_Extension_State_map___default___closed__1; x_3 = l_Lean_LocalContext_Inhabited___closed__1; x_4 = lean_alloc_ctor(0, 2, 1); lean_ctor_set(x_4, 0, x_2); @@ -21331,11 +25761,19 @@ lean_ctor_set_uint8(x_4, sizeof(void*)*2, x_1); return x_4; } } +static lean_object* _init_l_Lean_Meta_Match_Extension_State_map___default() { +_start: +{ +lean_object* x_1; +x_1 = l_Lean_Meta_Match_Extension_State_map___default___closed__2; +return x_1; +} +} static lean_object* _init_l_Lean_Meta_Match_Extension_State_inhabited() { _start: { lean_object* x_1; -x_1 = l_Lean_Meta_Match_Extension_State_inhabited___closed__2; +x_1 = l_Lean_mkEmptyEnvironment___closed__1; return x_1; } } @@ -23346,7 +27784,47 @@ lean_dec(x_3); return x_8; } } -lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1___rarg), 3, 0); +return x_3; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1___boxed(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f_match__1(x_1, x_2); +lean_dec(x_1); +return x_3; +} +} +lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; uint8_t x_5; @@ -23385,7 +27863,7 @@ return x_12; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1() { _start: { lean_object* x_1; @@ -23393,27 +27871,27 @@ x_1 = lean_mk_string("dependent match elimination failed, universe level not fou return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_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; uint8_t x_9; @@ -23427,12 +27905,12 @@ x_11 = lean_mk_empty_array_with_capacity(x_10); lean_dec(x_10); x_12 = l_List_toArrayAux___main___rarg(x_1, x_11); x_13 = lean_unsigned_to_nat(0u); -x_14 = l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1(x_12, x_2, x_13); +x_14 = l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1(x_12, x_2, x_13); lean_dec(x_12); if (lean_obj_tag(x_14) == 0) { lean_object* x_15; lean_object* x_16; -x_15 = l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3; +x_15 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3; x_16 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_15, x_3, x_4, x_5, x_6, x_7); return x_16; } @@ -23475,21 +27953,21 @@ return x_23; } } } -lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { lean_object* x_4; -x_4 = l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___spec__1(x_1, x_2, x_3); +x_4 = l_Array_indexOfAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___spec__1(x_1, x_2, x_3); lean_dec(x_2); lean_dec(x_1); return x_4; } } -lean_object* l___private_Lean_Meta_Match_Match_41__getUElimPos_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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_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) { _start: { lean_object* x_8; -x_8 = l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f(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); @@ -23498,7 +27976,36 @@ lean_dec(x_2); return x_8; } } -lean_object* l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__1(lean_object* x_1) { +lean_object* l_Lean_Meta_Match_mkMatcher_match__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 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_Match_mkMatcher_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher_match__1___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_mkFreshExprMVar___at_Lean_Meta_Match_mkMatcher___spec__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) { +_start: +{ +lean_object* x_9; +x_9 = l___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +return x_9; +} +} +lean_object* l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__2(lean_object* x_1) { _start: { if (lean_obj_tag(x_1) == 0) @@ -23520,7 +28027,7 @@ x_6 = l_Lean_Expr_fvarId_x21(x_4); lean_dec(x_4); x_7 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_7, 0, x_6); -x_8 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__1(x_5); +x_8 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__2(x_5); lean_ctor_set(x_1, 1, x_8); lean_ctor_set(x_1, 0, x_7); return x_1; @@ -23537,7 +28044,7 @@ x_11 = l_Lean_Expr_fvarId_x21(x_9); lean_dec(x_9); x_12 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_12, 0, x_11); -x_13 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__1(x_10); +x_13 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__2(x_10); x_14 = lean_alloc_ctor(1, 2, 0); lean_ctor_set(x_14, 0, x_12); lean_ctor_set(x_14, 1, x_13); @@ -23546,14 +28053,6 @@ return x_14; } } } -lean_object* l_Std_mkHashSet___at_Lean_Meta_Match_mkMatcher___spec__2(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l_Std_mkHashSetImp___rarg(x_1); -return x_2; -} -} lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__3(lean_object* x_1, lean_object* x_2) { _start: { @@ -23589,89 +28088,81 @@ goto _start; } } } -lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(uint8_t x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___spec__4(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) { _start: { -if (x_1 == 0) -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_3; -x_3 = l_String_splitAux___main___closed__1; -return x_3; -} -else -{ -lean_object* x_4; 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_2, 0); -lean_inc(x_4); -x_5 = lean_ctor_get(x_2, 1); -lean_inc(x_5); -lean_dec(x_2); -x_6 = l_Lean_Level_format(x_4); -x_7 = lean_box(0); -x_8 = l_Lean_Format_pretty(x_6, x_7); -x_9 = l_List_reprAux___main___rarg___closed__1; -x_10 = lean_string_append(x_9, x_8); -lean_dec(x_8); -x_11 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(x_1, x_5); -x_12 = lean_string_append(x_10, x_11); -lean_dec(x_11); -return x_12; +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; +lean_inc(x_3); +lean_inc(x_2); +lean_inc(x_1); +x_10 = lean_alloc_closure((void*)(l___private_Lean_Meta_Closure_1__mkAuxDefinitionImp___lambda__1___boxed), 4, 3); +lean_closure_set(x_10, 0, x_1); +lean_closure_set(x_10, 1, x_2); +lean_closure_set(x_10, 2, x_3); +x_11 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__4; +x_12 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_11, x_10, 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_14 = l___private_Lean_Meta_Closure_1__mkAuxDefinitionImp(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_13); +return x_14; } } -else -{ -if (lean_obj_tag(x_2) == 0) -{ -lean_object* x_13; -x_13 = l_String_splitAux___main___closed__1; -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; -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_16 = l_Lean_Level_format(x_14); -x_17 = lean_box(0); -x_18 = l_Lean_Format_pretty(x_16, x_17); -x_19 = 0; -x_20 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(x_19, x_15); -x_21 = lean_string_append(x_18, x_20); -lean_dec(x_20); -return x_21; -} -} -} -} -lean_object* l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__4(lean_object* x_1) { +uint8_t l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5(lean_object* x_1, lean_object* x_2) { _start: { -if (lean_obj_tag(x_1) == 0) -{ -lean_object* x_2; -x_2 = l_List_repr___rarg___closed__1; -return x_2; -} -else -{ -uint8_t x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; -x_3 = 1; -x_4 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(x_3, x_1); -x_5 = l_List_repr___rarg___closed__2; -x_6 = lean_string_append(x_5, x_4); +lean_object* x_3; lean_object* x_4; size_t x_5; size_t x_6; lean_object* x_7; uint8_t x_8; +x_3 = lean_ctor_get(x_1, 1); +x_4 = lean_array_get_size(x_3); +x_5 = lean_usize_of_nat(x_2); +x_6 = lean_usize_modn(x_5, x_4); lean_dec(x_4); -x_7 = l_List_repr___rarg___closed__3; -x_8 = lean_string_append(x_6, x_7); +x_7 = lean_array_uget(x_3, x_6); +x_8 = l_List_elem___main___at_Lean_Occurrences_contains___spec__1(x_2, x_7); +lean_dec(x_7); return x_8; } } +lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6(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_unsigned_to_nat(0u); +x_7 = lean_nat_dec_eq(x_4, x_6); +if (x_7 == 0) +{ +lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; +x_8 = lean_unsigned_to_nat(1u); +x_9 = lean_nat_sub(x_4, x_8); +x_10 = lean_nat_sub(x_3, x_4); +lean_dec(x_4); +x_11 = lean_ctor_get(x_2, 0); +x_12 = l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5(x_11, x_10); +if (x_12 == 0) +{ +lean_object* x_13; +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_10); +lean_ctor_set(x_13, 1, x_5); +x_4 = x_9; +x_5 = x_13; +goto _start; } -lean_object* l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___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) { +else +{ +lean_dec(x_10); +x_4 = x_9; +goto _start; +} +} +else +{ +lean_dec(x_4); +return x_5; +} +} +} +lean_object* l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___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) { _start: { lean_object* x_8; uint8_t x_9; lean_object* x_10; lean_object* x_236; lean_object* x_237; lean_object* x_238; uint8_t x_239; @@ -24617,7 +29108,7 @@ return x_234; } } } -lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__7(lean_object* x_1, lean_object* x_2) { +lean_object* l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__8(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; uint8_t x_4; @@ -24652,7 +29143,7 @@ goto _start; } } } -lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__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* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__9(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) { _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; @@ -24692,99 +29183,999 @@ return x_20; } } } -uint8_t l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(uint8_t x_1, lean_object* x_2) { _start: { -lean_object* x_3; lean_object* x_4; size_t x_5; size_t x_6; lean_object* x_7; uint8_t x_8; -x_3 = lean_ctor_get(x_1, 1); -x_4 = lean_array_get_size(x_3); -x_5 = lean_usize_of_nat(x_2); -x_6 = lean_usize_modn(x_5, x_4); +if (x_1 == 0) +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_3; +x_3 = l_String_splitAux___main___closed__1; +return x_3; +} +else +{ +lean_object* x_4; 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_2, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_2, 1); +lean_inc(x_5); +lean_dec(x_2); +x_6 = l_Lean_Level_format(x_4); +x_7 = lean_box(0); +x_8 = l_Lean_Format_pretty(x_6, x_7); +x_9 = l_List_reprAux___main___rarg___closed__1; +x_10 = lean_string_append(x_9, x_8); +lean_dec(x_8); +x_11 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(x_1, x_5); +x_12 = lean_string_append(x_10, x_11); +lean_dec(x_11); +return x_12; +} +} +else +{ +if (lean_obj_tag(x_2) == 0) +{ +lean_object* x_13; +x_13 = l_String_splitAux___main___closed__1; +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; +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_16 = l_Lean_Level_format(x_14); +x_17 = lean_box(0); +x_18 = l_Lean_Format_pretty(x_16, x_17); +x_19 = 0; +x_20 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(x_19, x_15); +x_21 = lean_string_append(x_18, x_20); +lean_dec(x_20); +return x_21; +} +} +} +} +lean_object* l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__10(lean_object* x_1) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_2; +x_2 = l_List_repr___rarg___closed__1; +return x_2; +} +else +{ +uint8_t x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; +x_3 = 1; +x_4 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(x_3, x_1); +x_5 = l_List_repr___rarg___closed__2; +x_6 = lean_string_append(x_5, x_4); lean_dec(x_4); -x_7 = lean_array_uget(x_3, x_6); -x_8 = l_List_elem___main___at_Lean_Occurrences_contains___spec__1(x_2, x_7); -lean_dec(x_7); +x_7 = l_List_repr___rarg___closed__3; +x_8 = lean_string_append(x_6, x_7); return x_8; } } -lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +} +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { _start: { -lean_object* x_6; uint8_t x_7; -x_6 = lean_unsigned_to_nat(0u); -x_7 = lean_nat_dec_eq(x_4, x_6); -if (x_7 == 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; uint8_t x_11; +x_5 = l_Lean_mkFreshId___at_Lean_Meta_mkFreshExprMVarAt___spec__1___rarg(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_st_ref_take(x_1, 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_is_exclusive(x_9); +if (x_11 == 0) { -lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; uint8_t x_12; -x_8 = lean_unsigned_to_nat(1u); -x_9 = lean_nat_sub(x_4, x_8); -x_10 = lean_nat_sub(x_3, x_4); -lean_dec(x_4); -x_11 = lean_ctor_get(x_2, 0); -x_12 = l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9(x_11, x_10); -if (x_12 == 0) +lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; +x_12 = lean_ctor_get(x_9, 0); +lean_inc(x_6); +x_13 = l_Lean_MetavarContext_addLevelMVarDecl(x_12, x_6); +lean_ctor_set(x_9, 0, x_13); +x_14 = lean_st_ref_set(x_1, x_9, x_10); +x_15 = !lean_is_exclusive(x_14); +if (x_15 == 0) { -lean_object* x_13; -x_13 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_13, 0, x_10); -lean_ctor_set(x_13, 1, x_5); -x_4 = x_9; -x_5 = x_13; -goto _start; +lean_object* x_16; lean_object* x_17; +x_16 = lean_ctor_get(x_14, 0); +lean_dec(x_16); +x_17 = l_Lean_mkLevelMVar(x_6); +lean_ctor_set(x_14, 0, x_17); +return x_14; } else { -lean_dec(x_10); -x_4 = x_9; -goto _start; +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 = l_Lean_mkLevelMVar(x_6); +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_dec(x_4); -return x_5; +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_9, 0); +x_22 = lean_ctor_get(x_9, 1); +x_23 = lean_ctor_get(x_9, 2); +lean_inc(x_23); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_9); +lean_inc(x_6); +x_24 = l_Lean_MetavarContext_addLevelMVarDecl(x_21, x_6); +x_25 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_25, 0, x_24); +lean_ctor_set(x_25, 1, x_22); +lean_ctor_set(x_25, 2, x_23); +x_26 = lean_st_ref_set(x_1, x_25, x_10); +x_27 = lean_ctor_get(x_26, 1); +lean_inc(x_27); +if (lean_is_exclusive(x_26)) { + lean_ctor_release(x_26, 0); + lean_ctor_release(x_26, 1); + x_28 = x_26; +} else { + lean_dec_ref(x_26); + x_28 = lean_box(0); } +x_29 = l_Lean_mkLevelMVar(x_6); +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; +} +} +} +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg___boxed), 4, 0); +return x_2; } } static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1() { _start: { -lean_object* x_1; -x_1 = lean_mk_string("motiveType: "); -return x_1; +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Position_lt___closed__1; +x_2 = lean_alloc_closure((void*)(l_beqOfEq___rarg), 3, 1); +lean_closure_set(x_2, 0, x_1); +return x_2; } } static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2() { _start: { -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1; -x_2 = lean_alloc_ctor(2, 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 = lean_box(0); +x_2 = l_Std_HashSet_Inhabited___closed__1; +x_3 = lean_alloc_ctor(0, 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_Meta_Match_mkMatcher___lambda__1___closed__3() { _start: { +lean_object* x_1; +x_1 = lean_mk_string("matcher: "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4() { +_start: +{ lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1(lean_object* x_1, lean_object* x_2) { +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__6() { _start: { -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_1); -x_4 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3; -x_5 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; +lean_object* x_1; +x_1 = lean_mk_string("matcher levels: "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__6; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7; +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_Meta_Match_mkMatcher___lambda__1___closed__9() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string(", uElim: "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__9; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10; +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_Meta_Match_mkMatcher___lambda__1___closed__12() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("matcher value: "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__12; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13; +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_Meta_Match_mkMatcher___lambda__1___closed__15() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("\ntype: "); +return x_1; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__15; +x_2 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16; +x_2 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_2, 0, x_1); +return x_2; +} +} +lean_object* l_Lean_Meta_Match_mkMatcher___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_object* x_16) { +_start: +{ +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_inc(x_1); +x_17 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_17, 0, x_1); +x_18 = 0; +x_19 = lean_box(0); +lean_inc(x_12); +x_20 = l___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl(x_17, x_18, x_19, x_12, x_13, x_14, x_15, x_16); +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_Array_toList___rarg(x_2); +lean_inc(x_23); +x_24 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__2(x_23); +x_25 = l_Lean_Expr_mvarId_x21(x_21); +x_26 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_26, 0, x_25); +lean_ctor_set(x_26, 1, x_23); +lean_ctor_set(x_26, 2, x_10); +lean_ctor_set(x_26, 3, x_24); +x_27 = lean_box(0); +x_28 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2; +x_29 = lean_st_mk_ref(x_28, x_22); +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); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +x_32 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process(x_26, x_30, x_12, x_13, x_14, x_15, x_31); +if (lean_obj_tag(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; 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_33 = lean_ctor_get(x_32, 1); +lean_inc(x_33); +lean_dec(x_32); +x_34 = lean_st_ref_get(x_30, x_33); +lean_dec(x_30); +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_mkOptionalNode___closed__2; +x_38 = lean_array_push(x_37, x_3); +x_39 = lean_unsigned_to_nat(0u); +x_40 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_2, x_2, x_39, x_38); +x_41 = x_11; +lean_inc(x_41); +x_42 = l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__3(x_39, x_41); +x_43 = x_42; +x_44 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_43, x_43, x_39, x_40); +lean_dec(x_43); +lean_inc(x_12); +lean_inc(x_44); +x_45 = l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(x_44, x_1, x_12, x_13, x_14, x_15, x_36); +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_45, 0); +lean_inc(x_46); +x_47 = lean_ctor_get(x_45, 1); +lean_inc(x_47); +lean_dec(x_45); +lean_inc(x_12); +x_48 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_introNCore___spec__2(x_44, x_21, x_12, x_13, x_14, x_15, x_47); +if (lean_obj_tag(x_48) == 0) +{ +lean_object* x_49; lean_object* x_50; lean_object* x_51; uint8_t x_146; lean_object* x_147; lean_object* x_158; lean_object* x_159; lean_object* x_160; uint8_t x_161; +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_158 = lean_st_ref_get(x_15, x_50); +x_159 = lean_ctor_get(x_158, 0); +lean_inc(x_159); +x_160 = lean_ctor_get(x_159, 3); +lean_inc(x_160); +lean_dec(x_159); +x_161 = lean_ctor_get_uint8(x_160, sizeof(void*)*1); +lean_dec(x_160); +if (x_161 == 0) +{ +lean_object* x_162; uint8_t x_163; +x_162 = lean_ctor_get(x_158, 1); +lean_inc(x_162); +lean_dec(x_158); +x_163 = 0; +x_146 = x_163; +x_147 = x_162; +goto block_157; +} +else +{ +lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; uint8_t x_168; +x_164 = lean_ctor_get(x_158, 1); +lean_inc(x_164); +lean_dec(x_158); +lean_inc(x_9); +x_165 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_9, x_12, x_13, x_14, x_15, 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_unbox(x_166); +lean_dec(x_166); +x_146 = x_168; +x_147 = x_167; +goto block_157; +} +block_145: +{ +uint8_t x_52; lean_object* x_53; +x_52 = 0; +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +lean_inc(x_4); +x_53 = l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___spec__4(x_4, x_46, x_49, x_52, x_12, x_13, x_14, x_15, x_51); +if (lean_obj_tag(x_53) == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_66; uint8_t x_112; lean_object* x_113; lean_object* x_131; lean_object* x_132; lean_object* x_133; uint8_t x_134; +x_54 = lean_ctor_get(x_53, 0); +lean_inc(x_54); +x_55 = lean_ctor_get(x_53, 1); +lean_inc(x_55); +if (lean_is_exclusive(x_53)) { + lean_ctor_release(x_53, 0); + lean_ctor_release(x_53, 1); + x_56 = x_53; +} else { + lean_dec_ref(x_53); + x_56 = lean_box(0); +} +x_131 = lean_st_ref_get(x_15, x_55); +x_132 = lean_ctor_get(x_131, 0); +lean_inc(x_132); +x_133 = lean_ctor_get(x_132, 3); +lean_inc(x_133); +lean_dec(x_132); +x_134 = lean_ctor_get_uint8(x_133, sizeof(void*)*1); +lean_dec(x_133); +if (x_134 == 0) +{ +lean_object* x_135; +x_135 = lean_ctor_get(x_131, 1); +lean_inc(x_135); +lean_dec(x_131); +x_112 = x_52; +x_113 = x_135; +goto block_130; +} +else +{ +lean_object* x_136; lean_object* x_137; lean_object* x_138; lean_object* x_139; uint8_t x_140; +x_136 = lean_ctor_get(x_131, 1); +lean_inc(x_136); +lean_dec(x_131); +lean_inc(x_9); +x_137 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_9, x_12, x_13, x_14, x_15, 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_dec(x_137); +x_140 = lean_unbox(x_138); +lean_dec(x_138); +x_112 = x_140; +x_113 = x_139; +goto block_130; +} +block_65: +{ +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; +x_58 = l_List_lengthAux___main___rarg(x_5, x_39); +x_59 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1; +lean_inc(x_58); +x_60 = l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6(x_59, x_35, x_58, x_58, x_27); +lean_dec(x_58); +x_61 = lean_ctor_get(x_35, 1); +lean_inc(x_61); +lean_dec(x_35); +x_62 = l_List_reverse___rarg(x_60); +x_63 = lean_alloc_ctor(0, 3, 0); +lean_ctor_set(x_63, 0, x_54); +lean_ctor_set(x_63, 1, x_61); +lean_ctor_set(x_63, 2, x_62); +if (lean_is_scalar(x_56)) { + x_64 = lean_alloc_ctor(0, 2, 0); +} else { + x_64 = x_56; +} +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_57); +return x_64; +} +block_111: +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = l_Lean_Expr_getAppFn___main(x_54); +x_68 = l_Lean_Expr_constLevels_x21(x_67); +lean_dec(x_67); +x_69 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f(x_68, x_6, x_12, x_13, x_14, x_15, x_66); +if (lean_obj_tag(x_69) == 0) +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; +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); +lean_inc(x_15); +lean_inc(x_14); +lean_inc(x_13); +lean_inc(x_12); +x_72 = l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___spec__7(x_6, x_7, x_12, x_13, x_14, x_15, x_71); +if (lean_obj_tag(x_72) == 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; uint8_t x_80; lean_object* x_81; +x_73 = lean_ctor_get(x_72, 1); +lean_inc(x_73); +lean_dec(x_72); +x_74 = l_Lean_Expr_getAppNumArgsAux___main(x_54, x_39); +x_75 = l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__8(x_39, x_41); +x_76 = x_75; +x_77 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_77, 0, x_74); +lean_ctor_set(x_77, 1, x_8); +lean_ctor_set(x_77, 2, x_76); +lean_ctor_set(x_77, 3, x_70); +lean_inc(x_4); +x_78 = l_Lean_Meta_Match_addMatcherInfo(x_4, x_77, x_12, x_13, x_14, x_15, x_73); +x_79 = lean_ctor_get(x_78, 1); +lean_inc(x_79); +lean_dec(x_78); +x_80 = 0; +x_81 = l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__9(x_4, x_80, x_12, x_13, x_14, x_15, x_79); +if (lean_obj_tag(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_81, 1); +lean_inc(x_82); +lean_dec(x_81); +x_83 = lean_st_ref_get(x_15, x_82); +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get(x_84, 3); +lean_inc(x_85); +lean_dec(x_84); +x_86 = lean_ctor_get_uint8(x_85, sizeof(void*)*1); +lean_dec(x_85); +if (x_86 == 0) +{ +lean_object* x_87; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_9); +x_87 = lean_ctor_get(x_83, 1); +lean_inc(x_87); +lean_dec(x_83); +x_57 = x_87; +goto block_65; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; uint8_t x_91; +x_88 = lean_ctor_get(x_83, 1); +lean_inc(x_88); +lean_dec(x_83); +lean_inc(x_9); +x_89 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_9, x_12, x_13, x_14, x_15, x_88); +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_92; +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_9); +x_92 = lean_ctor_get(x_89, 1); +lean_inc(x_92); +lean_dec(x_89); +x_57 = x_92; +goto block_65; +} +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; +x_93 = lean_ctor_get(x_89, 1); +lean_inc(x_93); +lean_dec(x_89); +lean_inc(x_54); +x_94 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_94, 0, x_54); +x_95 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5; +x_96 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_96, 0, x_95); +lean_ctor_set(x_96, 1, x_94); +x_97 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_9, x_96, x_12, x_13, x_14, x_15, x_93); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +x_98 = lean_ctor_get(x_97, 1); +lean_inc(x_98); +lean_dec(x_97); +x_57 = x_98; +goto block_65; +} +} +} +else +{ +uint8_t x_99; +lean_dec(x_56); +lean_dec(x_54); +lean_dec(x_35); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_9); +x_99 = !lean_is_exclusive(x_81); +if (x_99 == 0) +{ +return x_81; +} +else +{ +lean_object* x_100; lean_object* x_101; lean_object* x_102; +x_100 = lean_ctor_get(x_81, 0); +x_101 = lean_ctor_get(x_81, 1); +lean_inc(x_101); +lean_inc(x_100); +lean_dec(x_81); +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; +} +} +} +else +{ +uint8_t x_103; +lean_dec(x_70); +lean_dec(x_56); +lean_dec(x_54); +lean_dec(x_41); +lean_dec(x_35); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_13); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_4); +x_103 = !lean_is_exclusive(x_72); +if (x_103 == 0) +{ +return x_72; +} +else +{ +lean_object* x_104; lean_object* x_105; lean_object* x_106; +x_104 = lean_ctor_get(x_72, 0); +x_105 = lean_ctor_get(x_72, 1); +lean_inc(x_105); +lean_inc(x_104); +lean_dec(x_72); +x_106 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_106, 0, x_104); +lean_ctor_set(x_106, 1, x_105); +return x_106; +} +} +} +else +{ +uint8_t x_107; +lean_dec(x_56); +lean_dec(x_54); +lean_dec(x_41); +lean_dec(x_35); +lean_dec(x_15); +lean_dec(x_14); +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_4); +x_107 = !lean_is_exclusive(x_69); +if (x_107 == 0) +{ +return x_69; +} +else +{ +lean_object* x_108; lean_object* x_109; lean_object* x_110; +x_108 = lean_ctor_get(x_69, 0); +x_109 = lean_ctor_get(x_69, 1); +lean_inc(x_109); +lean_inc(x_108); +lean_dec(x_69); +x_110 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_110, 0, x_108); +lean_ctor_set(x_110, 1, x_109); +return x_110; +} +} +} +block_130: +{ +if (x_112 == 0) +{ +x_66 = x_113; +goto block_111; +} +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_object* x_127; lean_object* x_128; lean_object* x_129; +x_114 = l_Lean_Expr_getAppFn___main(x_54); +x_115 = l_Lean_Expr_constLevels_x21(x_114); +lean_dec(x_114); +x_116 = l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__10(x_115); +x_117 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_117, 0, x_116); +x_118 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_118, 0, x_117); +x_119 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8; +x_120 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_120, 0, x_119); +lean_ctor_set(x_120, 1, x_118); +x_121 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11; +x_122 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_122, 0, x_120); +lean_ctor_set(x_122, 1, x_121); +lean_inc(x_6); +x_123 = l_Lean_Level_format(x_6); +x_124 = l_Lean_Format_pretty(x_123, x_27); +x_125 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_125, 0, x_124); +x_126 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_126, 0, x_125); +x_127 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_127, 0, x_122); +lean_ctor_set(x_127, 1, x_126); +lean_inc(x_9); +x_128 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_9, x_127, x_12, x_13, x_14, x_15, x_113); +x_129 = lean_ctor_get(x_128, 1); +lean_inc(x_129); +lean_dec(x_128); +x_66 = x_129; +goto block_111; +} +} +} +else +{ +uint8_t x_141; +lean_dec(x_41); +lean_dec(x_35); +lean_dec(x_15); +lean_dec(x_14); +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_4); +x_141 = !lean_is_exclusive(x_53); +if (x_141 == 0) +{ +return x_53; +} +else +{ +lean_object* x_142; lean_object* x_143; lean_object* x_144; +x_142 = lean_ctor_get(x_53, 0); +x_143 = lean_ctor_get(x_53, 1); +lean_inc(x_143); +lean_inc(x_142); +lean_dec(x_53); +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; +} +} +} +block_157: +{ +if (x_146 == 0) +{ +x_51 = x_147; +goto block_145; +} +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_inc(x_49); +x_148 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_148, 0, x_49); +x_149 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14; +x_150 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_150, 0, x_149); +lean_ctor_set(x_150, 1, x_148); +x_151 = l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17; +x_152 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_152, 0, x_150); +lean_ctor_set(x_152, 1, x_151); +lean_inc(x_46); +x_153 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_153, 0, x_46); +x_154 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_154, 0, x_152); +lean_ctor_set(x_154, 1, x_153); +lean_inc(x_9); +x_155 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_9, x_154, x_12, x_13, x_14, x_15, x_147); +x_156 = lean_ctor_get(x_155, 1); +lean_inc(x_156); +lean_dec(x_155); +x_51 = x_156; +goto block_145; +} +} +} +else +{ +uint8_t x_169; +lean_dec(x_46); +lean_dec(x_41); +lean_dec(x_35); +lean_dec(x_15); +lean_dec(x_14); +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_4); +x_169 = !lean_is_exclusive(x_48); +if (x_169 == 0) +{ +return x_48; +} +else +{ +lean_object* x_170; lean_object* x_171; lean_object* x_172; +x_170 = lean_ctor_get(x_48, 0); +x_171 = lean_ctor_get(x_48, 1); +lean_inc(x_171); +lean_inc(x_170); +lean_dec(x_48); +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_dec(x_44); +lean_dec(x_41); +lean_dec(x_35); +lean_dec(x_21); +lean_dec(x_15); +lean_dec(x_14); +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_4); +x_173 = !lean_is_exclusive(x_45); +if (x_173 == 0) +{ +return x_45; +} +else +{ +lean_object* x_174; lean_object* x_175; lean_object* x_176; +x_174 = lean_ctor_get(x_45, 0); +x_175 = lean_ctor_get(x_45, 1); +lean_inc(x_175); +lean_inc(x_174); +lean_dec(x_45); +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 +{ +uint8_t x_177; +lean_dec(x_30); +lean_dec(x_21); +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_7); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_1); +x_177 = !lean_is_exclusive(x_32); +if (x_177 == 0) +{ +return x_32; +} +else +{ +lean_object* x_178; lean_object* x_179; lean_object* x_180; +x_178 = lean_ctor_get(x_32, 0); +x_179 = lean_ctor_get(x_32, 1); +lean_inc(x_179); +lean_inc(x_178); +lean_dec(x_32); +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; +} +} } } static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__1() { @@ -24815,754 +30206,204 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_1); -x_4 = l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3; -x_5 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1() { +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4() { _start: { lean_object* x_1; -x_1 = lean_mk_string("matcher value: "); +x_1 = lean_mk_string("motiveType: "); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3() { +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2; +x_1 = l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5; 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_Meta_Match_mkMatcher___lambda__3___closed__4() { +lean_object* l_Lean_Meta_Match_mkMatcher___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: { -lean_object* x_1; -x_1 = lean_mk_string("\ntype: "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__4; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3(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_alloc_ctor(2, 1, 0); -lean_ctor_set(x_4, 0, x_1); -x_5 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3; -x_6 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_6, 0, x_5); -lean_ctor_set(x_6, 1, x_4); -x_7 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6; -x_8 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_8, 0, x_6); -lean_ctor_set(x_8, 1, x_7); -x_9 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_9, 0, x_2); -x_10 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_10, 0, x_8); -lean_ctor_set(x_10, 1, x_9); -return x_10; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("matcher levels: "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__2; -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_Meta_Match_mkMatcher___lambda__4___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string(", uElim: "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__4; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___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; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_5 = l_Lean_Expr_getAppFn___main(x_1); -x_6 = l_Lean_Expr_constLevels_x21(x_5); -lean_dec(x_5); -x_7 = l_List_toString___at_Lean_Meta_Match_mkMatcher___spec__4(x_6); -x_8 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_8, 0, x_7); -x_9 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_9, 0, x_8); -x_10 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3; -x_11 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_11, 0, x_10); -lean_ctor_set(x_11, 1, x_9); -x_12 = l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6; -x_13 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_13, 0, x_11); -lean_ctor_set(x_13, 1, x_12); -x_14 = l_Lean_Level_format(x_2); -x_15 = l_Lean_Format_pretty(x_14, x_3); -x_16 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_16, 0, x_15); -x_17 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_17, 0, x_16); -x_18 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_18, 0, x_13); -lean_ctor_set(x_18, 1, x_17); -return x_18; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("matcher: "); -return x_1; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); -return x_2; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_3 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_3, 0, x_1); -x_4 = l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3; -x_5 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_5, 0, x_4); -lean_ctor_set(x_5, 1, x_3); -return x_5; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Position_lt___closed__1; -x_2 = lean_alloc_closure((void*)(l_beqOfEq___rarg), 3, 1); -lean_closure_set(x_2, 0, x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = lean_unsigned_to_nat(8u); -x_2 = l_Std_mkHashSetImp___rarg(x_1); -return x_2; -} -} -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = lean_box(0); -x_2 = l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2; -x_3 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_3, 0, x_2); -lean_ctor_set(x_3, 1, x_1); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___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, lean_object* x_14, lean_object* x_15, lean_object* x_16) { -_start: -{ -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_inc(x_1); -x_17 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_17, 0, x_1); -x_18 = 0; -x_19 = lean_box(0); -lean_inc(x_12); -x_20 = l___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl(x_17, x_18, x_19, x_12, x_13, x_14, x_15, x_16); -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_Array_toList___rarg(x_2); -lean_inc(x_23); -x_24 = l_List_map___main___at_Lean_Meta_Match_mkMatcher___spec__1(x_23); -x_25 = l_Lean_Expr_mvarId_x21(x_21); -x_26 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_26, 0, x_25); -lean_ctor_set(x_26, 1, x_23); -lean_ctor_set(x_26, 2, x_10); -lean_ctor_set(x_26, 3, x_24); -x_27 = lean_box(0); -x_28 = l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3; -x_29 = lean_st_mk_ref(x_28, x_22); -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); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -x_32 = l___private_Lean_Meta_Match_Match_40__process___main(x_26, x_30, x_12, x_13, x_14, x_15, x_31); -if (lean_obj_tag(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; 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_33 = lean_ctor_get(x_32, 1); -lean_inc(x_33); -lean_dec(x_32); -x_34 = lean_st_ref_get(x_30, x_33); -lean_dec(x_30); -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_mkOptionalNode___closed__2; -x_38 = lean_array_push(x_37, x_3); -x_39 = lean_unsigned_to_nat(0u); -x_40 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_2, x_2, x_39, x_38); -x_41 = x_11; -lean_inc(x_41); -x_42 = l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__3(x_39, x_41); -x_43 = x_42; -x_44 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_43, x_43, x_39, x_40); -lean_dec(x_43); -lean_inc(x_12); +lean_object* x_14; lean_object* x_42; lean_object* x_43; lean_object* x_44; uint8_t x_45; +x_42 = lean_st_ref_get(x_12, x_13); +x_43 = lean_ctor_get(x_42, 0); +lean_inc(x_43); +x_44 = lean_ctor_get(x_43, 3); lean_inc(x_44); -x_45 = l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(x_44, x_1, x_12, x_13, x_14, x_15, x_36); -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_45, 0); -lean_inc(x_46); -x_47 = lean_ctor_get(x_45, 1); -lean_inc(x_47); -lean_dec(x_45); -lean_inc(x_12); -x_48 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_SynthInstance_tryResolveCore___spec__1(x_44, x_21, x_12, x_13, x_14, x_15, x_47); -if (lean_obj_tag(x_48) == 0) -{ -lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; uint8_t x_54; lean_object* x_55; -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); -lean_inc(x_46); -lean_inc(x_49); -x_51 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__3___boxed), 3, 2); -lean_closure_set(x_51, 0, x_49); -lean_closure_set(x_51, 1, x_46); -lean_inc(x_4); -x_52 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_4, x_51, x_12, x_13, x_14, x_15, x_50); -x_53 = lean_ctor_get(x_52, 1); -lean_inc(x_53); -lean_dec(x_52); -x_54 = 0; -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -lean_inc(x_5); -x_55 = l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_mkAuxDefinitionFor___spec__1(x_5, x_46, x_49, x_54, x_12, x_13, x_14, x_15, x_53); -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; -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_6); -lean_inc(x_56); -x_58 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__4___boxed), 4, 3); -lean_closure_set(x_58, 0, x_56); -lean_closure_set(x_58, 1, x_6); -lean_closure_set(x_58, 2, x_27); -lean_inc(x_4); -x_59 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_4, x_58, x_12, x_13, x_14, x_15, x_57); -x_60 = lean_ctor_get(x_59, 1); -lean_inc(x_60); -lean_dec(x_59); -x_61 = l_Lean_Expr_getAppFn___main(x_56); -x_62 = l_Lean_Expr_constLevels_x21(x_61); -lean_dec(x_61); -x_63 = l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f(x_62, x_6, x_12, x_13, x_14, x_15, x_60); -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); -lean_inc(x_15); -lean_inc(x_14); -lean_inc(x_13); -lean_inc(x_12); -x_66 = l_Lean_Meta_isLevelDefEq___at_Lean_Meta_Match_mkMatcher___spec__6(x_6, x_7, x_12, x_13, x_14, x_15, x_65); -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; uint8_t x_74; lean_object* x_75; -x_67 = lean_ctor_get(x_66, 1); -lean_inc(x_67); -lean_dec(x_66); -x_68 = l_Lean_Expr_getAppNumArgsAux___main(x_56, x_39); -x_69 = l_Array_umapMAux___main___at_Lean_Meta_Match_mkMatcher___spec__7(x_39, x_41); -x_70 = x_69; -x_71 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_71, 0, x_68); -lean_ctor_set(x_71, 1, x_8); -lean_ctor_set(x_71, 2, x_70); -lean_ctor_set(x_71, 3, x_64); -lean_inc(x_5); -x_72 = l_Lean_Meta_Match_addMatcherInfo(x_5, x_71, x_12, x_13, x_14, x_15, x_67); -x_73 = lean_ctor_get(x_72, 1); -lean_inc(x_73); -lean_dec(x_72); -x_74 = 0; -x_75 = l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__8(x_5, x_74, x_12, x_13, x_14, x_15, x_73); -if (lean_obj_tag(x_75) == 0) -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; -x_76 = lean_ctor_get(x_75, 1); -lean_inc(x_76); -lean_dec(x_75); -lean_inc(x_56); -x_77 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__5___boxed), 2, 1); -lean_closure_set(x_77, 0, x_56); -x_78 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_4, x_77, x_12, x_13, x_14, x_15, x_76); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -x_79 = !lean_is_exclusive(x_78); -if (x_79 == 0) -{ -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; -x_80 = lean_ctor_get(x_78, 0); -lean_dec(x_80); -x_81 = l_List_lengthAux___main___rarg(x_9, x_39); -x_82 = l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1; -lean_inc(x_81); -x_83 = l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10(x_82, x_35, x_81, x_81, x_27); -lean_dec(x_81); -x_84 = lean_ctor_get(x_35, 1); -lean_inc(x_84); -lean_dec(x_35); -x_85 = l_List_reverse___rarg(x_83); -x_86 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_86, 0, x_56); -lean_ctor_set(x_86, 1, x_84); -lean_ctor_set(x_86, 2, x_85); -lean_ctor_set(x_78, 0, x_86); -return x_78; -} -else -{ -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; -x_87 = lean_ctor_get(x_78, 1); -lean_inc(x_87); -lean_dec(x_78); -x_88 = l_List_lengthAux___main___rarg(x_9, x_39); -x_89 = l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1; -lean_inc(x_88); -x_90 = l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10(x_89, x_35, x_88, x_88, x_27); -lean_dec(x_88); -x_91 = lean_ctor_get(x_35, 1); -lean_inc(x_91); -lean_dec(x_35); -x_92 = l_List_reverse___rarg(x_90); -x_93 = lean_alloc_ctor(0, 3, 0); -lean_ctor_set(x_93, 0, x_56); -lean_ctor_set(x_93, 1, x_91); -lean_ctor_set(x_93, 2, x_92); -x_94 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_94, 0, x_93); -lean_ctor_set(x_94, 1, x_87); -return x_94; -} -} -else -{ -uint8_t x_95; -lean_dec(x_56); -lean_dec(x_35); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_4); -x_95 = !lean_is_exclusive(x_75); -if (x_95 == 0) -{ -return x_75; -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; -x_96 = lean_ctor_get(x_75, 0); -x_97 = lean_ctor_get(x_75, 1); -lean_inc(x_97); -lean_inc(x_96); -lean_dec(x_75); -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 -{ -uint8_t x_99; -lean_dec(x_64); -lean_dec(x_56); -lean_dec(x_41); -lean_dec(x_35); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_8); -lean_dec(x_5); -lean_dec(x_4); -x_99 = !lean_is_exclusive(x_66); -if (x_99 == 0) -{ -return x_66; -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; -x_100 = lean_ctor_get(x_66, 0); -x_101 = lean_ctor_get(x_66, 1); -lean_inc(x_101); -lean_inc(x_100); -lean_dec(x_66); -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; -} -} -} -else -{ -uint8_t x_103; -lean_dec(x_56); -lean_dec(x_41); -lean_dec(x_35); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_103 = !lean_is_exclusive(x_63); -if (x_103 == 0) -{ -return x_63; -} -else -{ -lean_object* x_104; lean_object* x_105; lean_object* x_106; -x_104 = lean_ctor_get(x_63, 0); -x_105 = lean_ctor_get(x_63, 1); -lean_inc(x_105); -lean_inc(x_104); -lean_dec(x_63); -x_106 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_106, 0, x_104); -lean_ctor_set(x_106, 1, x_105); -return x_106; -} -} -} -else -{ -uint8_t x_107; -lean_dec(x_41); -lean_dec(x_35); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_107 = !lean_is_exclusive(x_55); -if (x_107 == 0) -{ -return x_55; -} -else -{ -lean_object* x_108; lean_object* x_109; lean_object* x_110; -x_108 = lean_ctor_get(x_55, 0); -x_109 = lean_ctor_get(x_55, 1); -lean_inc(x_109); -lean_inc(x_108); -lean_dec(x_55); -x_110 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_110, 0, x_108); -lean_ctor_set(x_110, 1, x_109); -return x_110; -} -} -} -else -{ -uint8_t x_111; -lean_dec(x_46); -lean_dec(x_41); -lean_dec(x_35); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_111 = !lean_is_exclusive(x_48); -if (x_111 == 0) -{ -return x_48; -} -else -{ -lean_object* x_112; lean_object* x_113; lean_object* x_114; -x_112 = lean_ctor_get(x_48, 0); -x_113 = lean_ctor_get(x_48, 1); -lean_inc(x_113); -lean_inc(x_112); -lean_dec(x_48); -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 -{ -uint8_t x_115; +lean_dec(x_43); +x_45 = lean_ctor_get_uint8(x_44, sizeof(void*)*1); lean_dec(x_44); -lean_dec(x_41); -lean_dec(x_35); -lean_dec(x_21); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_8); +if (x_45 == 0) +{ +lean_object* x_46; lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -x_115 = !lean_is_exclusive(x_45); -if (x_115 == 0) -{ -return x_45; +x_46 = lean_ctor_get(x_42, 1); +lean_inc(x_46); +lean_dec(x_42); +x_14 = x_46; +goto block_41; } else { -lean_object* x_116; lean_object* x_117; lean_object* x_118; -x_116 = lean_ctor_get(x_45, 0); -x_117 = lean_ctor_get(x_45, 1); -lean_inc(x_117); -lean_inc(x_116); -lean_dec(x_45); -x_118 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_118, 0, x_116); -lean_ctor_set(x_118, 1, x_117); -return x_118; -} -} -} -else +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_42, 1); +lean_inc(x_47); +lean_dec(x_42); +x_48 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +x_49 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_48, x_9, x_10, x_11, x_12, x_47); +x_50 = lean_ctor_get(x_49, 0); +lean_inc(x_50); +x_51 = lean_unbox(x_50); +lean_dec(x_50); +if (x_51 == 0) { -uint8_t x_119; -lean_dec(x_30); -lean_dec(x_21); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_13); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_8); +lean_object* x_52; 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_119 = !lean_is_exclusive(x_32); -if (x_119 == 0) -{ -return x_32; +x_52 = lean_ctor_get(x_49, 1); +lean_inc(x_52); +lean_dec(x_49); +x_14 = x_52; +goto block_41; } else { -lean_object* x_120; lean_object* x_121; lean_object* x_122; -x_120 = lean_ctor_get(x_32, 0); -x_121 = lean_ctor_get(x_32, 1); -lean_inc(x_121); -lean_inc(x_120); -lean_dec(x_32); -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; +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_49, 1); +lean_inc(x_53); +lean_dec(x_49); +x_54 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_54, 0, x_7); +x_55 = l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6; +x_56 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_54); +x_57 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_48, x_56, x_9, x_10, x_11, x_12, x_53); +x_58 = lean_ctor_get(x_57, 1); +lean_inc(x_58); +lean_dec(x_57); +x_14 = x_58; +goto block_41; } } -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___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, lean_object* x_10, lean_object* x_11, lean_object* x_12, lean_object* x_13) { -_start: +block_41: { -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; -x_14 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__1___boxed), 2, 1); -lean_closure_set(x_14, 0, x_1); -x_15 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3; -x_16 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_15, x_14, x_9, x_10, x_11, x_12, x_13); -x_17 = lean_ctor_get(x_16, 1); -lean_inc(x_17); -lean_dec(x_16); -x_18 = lean_unsigned_to_nat(0u); +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(0u); lean_inc(x_8); -x_19 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_2, x_2, x_18, x_8); +x_16 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_1, x_1, x_15, x_8); +x_17 = lean_st_ref_get(x_12, x_14); +x_18 = lean_ctor_get(x_17, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_18, 3); lean_inc(x_19); -x_20 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__2___boxed), 2, 1); -lean_closure_set(x_20, 0, x_19); -x_21 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_15, x_20, x_9, x_10, x_11, x_12, x_17); -x_22 = lean_ctor_get(x_21, 1); -lean_inc(x_22); -lean_dec(x_21); -lean_inc(x_7); +lean_dec(x_18); +x_20 = lean_ctor_get_uint8(x_19, sizeof(void*)*1); +lean_dec(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_17, 1); +lean_inc(x_21); +lean_dec(x_17); +x_22 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +lean_inc(x_3); lean_inc(x_8); -x_23 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__6___boxed), 16, 9); -lean_closure_set(x_23, 0, x_19); -lean_closure_set(x_23, 1, x_2); +x_23 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__1___boxed), 16, 9); +lean_closure_set(x_23, 0, x_16); +lean_closure_set(x_23, 1, x_1); lean_closure_set(x_23, 2, x_8); -lean_closure_set(x_23, 3, x_15); +lean_closure_set(x_23, 3, x_2); lean_closure_set(x_23, 4, x_3); lean_closure_set(x_23, 5, x_4); lean_closure_set(x_23, 6, x_5); lean_closure_set(x_23, 7, x_6); -lean_closure_set(x_23, 8, x_7); -x_24 = l___private_Lean_Meta_Match_Match_3__withAlts___rarg(x_8, x_7, x_23, x_9, x_10, x_11, x_12, x_22); +lean_closure_set(x_23, 8, x_22); +x_24 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___rarg(x_8, x_3, x_23, x_9, x_10, x_11, x_12, x_21); return x_24; } +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; +x_25 = lean_ctor_get(x_17, 1); +lean_inc(x_25); +lean_dec(x_17); +x_26 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; +x_27 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_26, x_9, x_10, x_11, x_12, x_25); +x_28 = lean_ctor_get(x_27, 0); +lean_inc(x_28); +x_29 = lean_unbox(x_28); +lean_dec(x_28); +if (x_29 == 0) +{ +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_27, 1); +lean_inc(x_30); +lean_dec(x_27); +lean_inc(x_3); +lean_inc(x_8); +x_31 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__1___boxed), 16, 9); +lean_closure_set(x_31, 0, x_16); +lean_closure_set(x_31, 1, x_1); +lean_closure_set(x_31, 2, x_8); +lean_closure_set(x_31, 3, x_2); +lean_closure_set(x_31, 4, x_3); +lean_closure_set(x_31, 5, x_4); +lean_closure_set(x_31, 6, x_5); +lean_closure_set(x_31, 7, x_6); +lean_closure_set(x_31, 8, x_26); +x_32 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___rarg(x_8, x_3, x_31, x_9, x_10, x_11, x_12, x_30); +return x_32; } -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1() { +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; +x_33 = lean_ctor_get(x_27, 1); +lean_inc(x_33); +lean_dec(x_27); +lean_inc(x_16); +x_34 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_34, 0, x_16); +x_35 = l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3; +x_36 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_36, 0, x_35); +lean_ctor_set(x_36, 1, x_34); +x_37 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_26, x_36, x_9, x_10, x_11, x_12, x_33); +x_38 = lean_ctor_get(x_37, 1); +lean_inc(x_38); +lean_dec(x_37); +lean_inc(x_3); +lean_inc(x_8); +x_39 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__1___boxed), 16, 9); +lean_closure_set(x_39, 0, x_16); +lean_closure_set(x_39, 1, x_1); +lean_closure_set(x_39, 2, x_8); +lean_closure_set(x_39, 3, x_2); +lean_closure_set(x_39, 4, x_3); +lean_closure_set(x_39, 5, x_4); +lean_closure_set(x_39, 6, x_5); +lean_closure_set(x_39, 7, x_6); +lean_closure_set(x_39, 8, x_26); +x_40 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAlts___rarg(x_8, x_3, x_39, x_9, x_10, x_11, x_12, x_38); +return x_40; +} +} +} +} +} +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1() { _start: { lean_object* x_1; @@ -25570,21 +30411,86 @@ x_1 = lean_mk_string("motive"); return x_1; } } -static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2() { +static lean_object* _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1; +x_2 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -lean_object* l_Lean_Meta_Match_mkMatcher___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) { +lean_object* l_Lean_Meta_Match_mkMatcher___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) { +_start: +{ +lean_object* x_12; lean_object* x_13; +lean_inc(x_6); +x_12 = l_Lean_mkSort(x_6); +lean_inc(x_7); +lean_inc(x_1); +x_13 = l_Lean_Meta_mkForallFVars___at_Lean_Meta_assertAfter___spec__13(x_1, x_12, 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; uint8_t x_18; lean_object* x_19; +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +lean_inc(x_14); +x_16 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__2), 13, 7); +lean_closure_set(x_16, 0, x_1); +lean_closure_set(x_16, 1, x_2); +lean_closure_set(x_16, 2, x_3); +lean_closure_set(x_16, 3, x_6); +lean_closure_set(x_16, 4, x_4); +lean_closure_set(x_16, 5, x_5); +lean_closure_set(x_16, 6, x_14); +x_17 = l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2; +x_18 = 0; +x_19 = l_Lean_Meta_withLocalDecl___at_Lean_Meta_substCore___spec__7___rarg(x_17, x_18, x_14, x_16, x_7, x_8, x_9, x_10, x_15); +return x_19; +} +else +{ +uint8_t x_20; +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_20 = !lean_is_exclusive(x_13); +if (x_20 == 0) +{ +return x_13; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +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_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +} +lean_object* l_Lean_Meta_Match_mkMatcher___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; -x_11 = l___private_Lean_Meta_Match_Match_1__checkNumPatterns(x_4, x_1, x_6, x_7, x_8, x_9, x_10); +x_11 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns(x_4, x_1, 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; @@ -25598,68 +30504,36 @@ lean_inc(x_6); x_13 = l___private_Lean_Meta_InferType_4__getLevelImp(x_5, x_6, x_7, x_8, x_9, 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_31; uint8_t x_32; +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_31 = l_Lean_levelZero; -x_32 = lean_level_eq(x_14, x_31); -if (x_32 == 0) +x_16 = l_Lean_levelZero; +x_17 = lean_level_eq(x_14, x_16); +if (x_17 == 0) { -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = l_Lean_Meta_mkFreshLevelMVar___at___private_Lean_Meta_Basic_4__mkFreshExprMVarImpl___spec__1___rarg(x_7, x_8, x_9, x_15); -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_16 = x_34; -x_17 = x_35; -goto block_30; +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_18 = l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg(x_7, x_8, x_9, x_15); +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_Meta_Match_mkMatcher___lambda__3(x_4, x_2, x_1, x_14, x_3, x_19, x_6, x_7, x_8, x_9, x_20); +return x_21; } else { -x_16 = x_31; -x_17 = x_15; -goto block_30; +lean_object* x_22; +x_22 = l_Lean_Meta_Match_mkMatcher___lambda__3(x_4, x_2, x_1, x_14, x_3, x_16, x_6, x_7, x_8, x_9, x_15); +return x_22; } -block_30: -{ -lean_object* x_18; lean_object* x_19; -lean_inc(x_16); -x_18 = l_Lean_mkSort(x_16); -lean_inc(x_6); -lean_inc(x_4); -x_19 = l_Lean_Meta_mkForallFVars___at___private_Lean_Meta_InferType_6__inferLambdaType___spec__1(x_4, x_18, x_6, x_7, x_8, x_9, 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; uint8_t x_24; lean_object* x_25; -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_20); -x_22 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__7), 13, 7); -lean_closure_set(x_22, 0, x_20); -lean_closure_set(x_22, 1, x_4); -lean_closure_set(x_22, 2, x_2); -lean_closure_set(x_22, 3, x_16); -lean_closure_set(x_22, 4, x_14); -lean_closure_set(x_22, 5, x_3); -lean_closure_set(x_22, 6, x_1); -x_23 = l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2; -x_24 = 0; -x_25 = l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_InferType_22__isTypeFormerTypeImp___main___spec__1___rarg(x_23, x_24, x_20, x_22, x_6, x_7, x_8, x_9, x_21); -return x_25; } else { -uint8_t x_26; -lean_dec(x_16); -lean_dec(x_14); +uint8_t x_23; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -25668,61 +30542,29 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -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; -} -} -} -} -else -{ -uint8_t x_36; -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_36 = !lean_is_exclusive(x_13); -if (x_36 == 0) +x_23 = !lean_is_exclusive(x_13); +if (x_23 == 0) { return x_13; } else { -lean_object* x_37; lean_object* x_38; lean_object* x_39; -x_37 = lean_ctor_get(x_13, 0); -x_38 = lean_ctor_get(x_13, 1); -lean_inc(x_38); -lean_inc(x_37); +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_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; +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; } } } else { -uint8_t x_40; +uint8_t x_27; lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); @@ -25732,23 +30574,23 @@ lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_40 = !lean_is_exclusive(x_11); -if (x_40 == 0) +x_27 = !lean_is_exclusive(x_11); +if (x_27 == 0) { return x_11; } else { -lean_object* x_41; lean_object* x_42; lean_object* x_43; -x_41 = lean_ctor_get(x_11, 0); -x_42 = lean_ctor_get(x_11, 1); -lean_inc(x_42); -lean_inc(x_41); +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_11, 0); +x_29 = lean_ctor_get(x_11, 1); +lean_inc(x_29); +lean_inc(x_28); lean_dec(x_11); -x_43 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_43, 0, x_41); -lean_ctor_set(x_43, 1, x_42); -return x_43; +x_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; } } } @@ -25760,7 +30602,7 @@ lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_inc(x_3); x_10 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_10, 0, x_3); -x_11 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__8), 10, 3); +x_11 = lean_alloc_closure((void*)(l_Lean_Meta_Match_mkMatcher___lambda__4), 10, 3); lean_closure_set(x_11, 0, x_4); lean_closure_set(x_11, 1, x_1); lean_closure_set(x_11, 2, x_3); @@ -25768,23 +30610,58 @@ x_12 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_FunInfo_6__ge return x_12; } } -lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_mkFreshExprMVar___at_Lean_Meta_Match_mkMatcher___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_2); +lean_dec(x_2); +x_10 = l_Lean_Meta_mkFreshExprMVar___at_Lean_Meta_Match_mkMatcher___spec__1(x_1, x_9, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +return x_10; +} +} +lean_object* l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___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) { +_start: +{ +uint8_t x_10; lean_object* x_11; +x_10 = lean_unbox(x_4); +lean_dec(x_4); +x_11 = l_Lean_Meta_mkAuxDefinition___at_Lean_Meta_Match_mkMatcher___spec__4(x_1, x_2, x_3, x_10, x_5, x_6, x_7, x_8, x_9); +return x_11; +} +} +lean_object* l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = lean_unbox(x_1); +x_3 = l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__5(x_1, x_2); +lean_dec(x_2); lean_dec(x_1); -x_4 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__5(x_3, x_2); +x_4 = lean_box(x_3); return x_4; } } -lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___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* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6___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_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__6(x_1, x_2, x_3, x_4, x_5); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_6; +} +} +lean_object* l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___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: { uint8_t x_8; lean_object* x_9; x_8 = lean_unbox(x_2); lean_dec(x_2); -x_9 = l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__8(x_1, x_8, x_3, x_4, x_5, x_6, x_7); +x_9 = l_Lean_Meta_setInlineAttribute___at_Lean_Meta_Match_mkMatcher___spec__9(x_1, x_8, x_3, x_4, x_5, x_6, x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); @@ -25792,81 +30669,42 @@ lean_dec(x_3); return x_9; } } -lean_object* l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11___boxed(lean_object* x_1, lean_object* x_2) { _start: { uint8_t x_3; lean_object* x_4; -x_3 = l_Std_HashSetImp_contains___at_Lean_Meta_Match_mkMatcher___spec__9(x_1, x_2); -lean_dec(x_2); +x_3 = lean_unbox(x_1); lean_dec(x_1); -x_4 = lean_box(x_3); +x_4 = l_List_toStringAux___main___at_Lean_Meta_Match_mkMatcher___spec__11(x_3, x_2); return x_4; } } -lean_object* l_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10___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_Nat_foldAux___main___at_Lean_Meta_Match_mkMatcher___spec__10(x_1, x_2, x_3, x_4, x_5); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_6; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__1___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_mkMatcher___lambda__1(x_1, x_2); -lean_dec(x_2); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__2___boxed(lean_object* x_1, lean_object* x_2) { -_start: -{ -lean_object* x_3; -x_3 = l_Lean_Meta_Match_mkMatcher___lambda__2(x_1, x_2); -lean_dec(x_2); -return x_3; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { -_start: -{ -lean_object* x_4; -x_4 = l_Lean_Meta_Match_mkMatcher___lambda__3(x_1, x_2, x_3); -lean_dec(x_3); -return x_4; -} -} -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg___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_Meta_Match_mkMatcher___lambda__4(x_1, x_2, x_3, x_4); -lean_dec(x_4); +x_5 = l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___rarg(x_1, x_2, x_3, x_4); lean_dec(x_3); +lean_dec(x_2); lean_dec(x_1); return x_5; } } -lean_object* l_Lean_Meta_Match_mkMatcher___lambda__5___boxed(lean_object* x_1, lean_object* x_2) { +lean_object* l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12___boxed(lean_object* x_1) { _start: { -lean_object* x_3; -x_3 = l_Lean_Meta_Match_mkMatcher___lambda__5(x_1, x_2); -lean_dec(x_2); -return x_3; +lean_object* x_2; +x_2 = l_Lean_Meta_mkFreshLevelMVar___at_Lean_Meta_Match_mkMatcher___spec__12(x_1); +lean_dec(x_1); +return x_2; } } -lean_object* l_Lean_Meta_Match_mkMatcher___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) { +lean_object* l_Lean_Meta_Match_mkMatcher___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: { lean_object* x_17; -x_17 = l_Lean_Meta_Match_mkMatcher___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, x_14, x_15, x_16); -lean_dec(x_9); +x_17 = l_Lean_Meta_Match_mkMatcher___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, x_16); +lean_dec(x_5); lean_dec(x_2); return x_17; } @@ -26001,6 +30839,70 @@ lean_dec(x_1); return x_7; } } +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; +lean_dec(x_2); +x_4 = lean_apply_1(x_3, x_1); +return x_4; +} +else +{ +lean_object* x_5; lean_object* x_6; +lean_dec(x_3); +x_5 = lean_ctor_get(x_1, 0); +lean_inc(x_5); +lean_dec(x_1); +x_6 = lean_apply_1(x_2, x_5); +return x_6; +} +} +} +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_matchMatcherApp_x3f_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__2___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 4) +{ +lean_object* x_4; lean_object* x_5; uint64_t x_6; lean_object* x_7; lean_object* x_8; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get_uint64(x_1, sizeof(void*)*2); +lean_dec(x_1); +x_7 = lean_box_uint64(x_6); +x_8 = lean_apply_3(x_2, x_4, x_5, x_7); +return x_8; +} +else +{ +lean_object* x_9; +lean_dec(x_2); +x_9 = lean_apply_1(x_3, x_1); +return x_9; +} +} +} +lean_object* l_Lean_Meta_matchMatcherApp_x3f_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_matchMatcherApp_x3f_match__2___rarg), 3, 0); +return x_2; +} +} lean_object* l_Lean_Meta_matchMatcherApp_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: { @@ -26386,7 +31288,118 @@ lean_dec(x_15); return x_16; } } -lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_42__updateAlts___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +if (lean_obj_tag(x_1) == 7) +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; uint64_t x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_3); +x_4 = lean_ctor_get(x_1, 0); +lean_inc(x_4); +x_5 = lean_ctor_get(x_1, 1); +lean_inc(x_5); +x_6 = lean_ctor_get(x_1, 2); +lean_inc(x_6); +x_7 = lean_ctor_get_uint64(x_1, sizeof(void*)*3); +lean_dec(x_1); +x_8 = lean_box_uint64(x_7); +x_9 = lean_apply_4(x_2, x_4, x_5, x_6, x_8); +return x_9; +} +else +{ +lean_object* x_10; +lean_dec(x_2); +x_10 = lean_apply_1(x_3, x_1); +return x_10; +} +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__2___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; +x_6 = lean_apply_4(x_5, x_1, x_2, x_3, x_4); +return x_6; +} +} +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts_match__2___rarg), 5, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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; +x_9 = l___private_Lean_Meta_Basic_21__forallBoundedTelescopeImp___rarg(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +if (lean_obj_tag(x_9) == 0) +{ +uint8_t x_10; +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; +} +} +else +{ +uint8_t x_14; +x_14 = !lean_is_exclusive(x_9); +if (x_14 == 0) +{ +return x_9; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +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_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_object* l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg), 8, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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; lean_object* x_9; @@ -26395,12 +31408,12 @@ x_9 = l___private_Lean_Meta_Basic_38__instantiateLambdaAux___main(x_2, x_8, x_1, return x_9; } } -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___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, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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_5); -x_10 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_SynthInstance_tryResolveCore___spec__1(x_3, x_1, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_introNCore___spec__2(x_3, x_1, 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; @@ -26409,7 +31422,7 @@ lean_inc(x_11); x_12 = lean_ctor_get(x_10, 1); lean_inc(x_12); lean_dec(x_10); -x_13 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_SynthInstance_tryResolveCore___spec__1(x_2, x_11, x_5, x_6, x_7, x_8, x_12); +x_13 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_introNCore___spec__2(x_2, x_11, x_5, x_6, x_7, x_8, x_12); if (lean_obj_tag(x_13) == 0) { uint8_t x_14; @@ -26481,7 +31494,7 @@ return x_25; } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1() { _start: { lean_object* x_1; lean_object* x_2; @@ -26491,7 +31504,19 @@ lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2() { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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) { +_start: +{ +lean_object* x_9; lean_object* x_10; lean_object* x_11; +x_9 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__1___boxed), 9, 2); +lean_closure_set(x_9, 0, x_3); +lean_closure_set(x_9, 1, x_1); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1; +x_11 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_2, x_10, x_9, x_4, x_5, x_6, x_7, x_8); +return x_11; +} +} +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1() { _start: { lean_object* x_1; @@ -26499,27 +31524,27 @@ x_1 = lean_mk_string("unexpected matcher application, insufficient number of par return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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) { _start: { lean_object* x_9; lean_object* x_10; @@ -26531,55 +31556,51 @@ lean_inc(x_4); x_10 = l___private_Lean_Meta_Basic_38__instantiateLambdaAux___main(x_2, x_9, x_1, x_4, x_5, x_6, x_7, x_8); 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_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_inc(x_12); lean_dec(x_10); -x_13 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__1___boxed), 9, 2); -lean_closure_set(x_13, 0, x_11); -lean_closure_set(x_13, 1, x_2); -x_14 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1; -x_15 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_FunInfo_6__getFunInfoAux___spec__2___rarg(x_3, x_14, x_13, x_4, x_5, x_6, x_7, x_12); -return x_15; +x_13 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2(x_2, x_3, x_11, x_4, x_5, x_6, x_7, x_12); +return x_13; } else { -lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_dec(x_3); lean_dec(x_2); -x_16 = lean_ctor_get(x_10, 1); -lean_inc(x_16); +x_14 = lean_ctor_get(x_10, 1); +lean_inc(x_14); lean_dec(x_10); -x_17 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4; -x_18 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_17, x_4, x_5, x_6, x_7, x_16); +x_15 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3; +x_16 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_15, x_4, x_5, x_6, x_7, x_14); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -x_19 = !lean_is_exclusive(x_18); -if (x_19 == 0) +x_17 = !lean_is_exclusive(x_16); +if (x_17 == 0) { -return x_18; +return x_16; } else { -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_dec(x_18); -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; +lean_object* x_18; lean_object* x_19; lean_object* x_20; +x_18 = lean_ctor_get(x_16, 0); +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_inc(x_18); +lean_dec(x_16); +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; } } } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1() { _start: { lean_object* x_1; @@ -26587,27 +31608,27 @@ x_1 = lean_mk_string("unexpected type at MatcherApp.addArg"); return x_1; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3() { +static lean_object* _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2; +x_1 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2; x_2 = lean_alloc_ctor(0, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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; @@ -26641,7 +31662,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_17 = l_Lean_Meta_whnfD___at___private_Lean_Meta_InferType_4__getLevelImp___spec__1(x_1, x_5, x_6, x_7, x_8, x_9); +x_17 = l_Lean_Meta_whnfD___at_Lean_Meta_getArrayArgType___spec__2(x_1, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; @@ -26661,13 +31682,13 @@ lean_dec(x_18); lean_inc(x_16); x_22 = lean_alloc_ctor(1, 1, 0); lean_ctor_set(x_22, 0, x_16); -x_23 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2), 8, 1); +x_23 = lean_alloc_closure((void*)(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3), 8, 1); lean_closure_set(x_23, 0, x_14); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_24 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_FunInfo_6__getFunInfoAux___spec__2___rarg(x_20, x_22, x_23, x_5, x_6, x_7, x_8, x_19); +x_24 = l_Lean_Meta_forallBoundedTelescope___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__1___rarg(x_20, x_22, x_23, x_5, x_6, x_7, x_8, x_19); if (lean_obj_tag(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; @@ -26736,8 +31757,8 @@ lean_dec(x_2); x_38 = lean_ctor_get(x_17, 1); lean_inc(x_38); lean_dec(x_17); -x_39 = l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3; -x_40 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_39, x_5, x_6, x_7, x_8, x_38); +x_39 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3; +x_40 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_39, x_5, x_6, x_7, x_8, x_38); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); @@ -26779,20 +31800,20 @@ return x_44; } } } -lean_object* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_42__updateAlts___main___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* l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_42__updateAlts___main___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Lean_Meta_instantiateLambda___at___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); lean_dec(x_2); return x_8; } } -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts___main___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* l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___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); @@ -26800,15 +31821,175 @@ lean_dec(x_4); return x_10; } } -lean_object* l___private_Lean_Meta_Match_Match_42__updateAlts(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l_Lean_Meta_MatcherApp_addArg_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { -lean_object* x_10; -x_10 = l___private_Lean_Meta_Match_Match_42__updateAlts___main(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_10; +if (lean_obj_tag(x_1) == 0) +{ +lean_object* x_4; lean_object* x_5; +lean_dec(x_3); +x_4 = lean_box(0); +x_5 = lean_apply_1(x_2, x_4); +return x_5; +} +else +{ +lean_object* x_6; lean_object* x_7; +lean_dec(x_2); +x_6 = lean_ctor_get(x_1, 0); +lean_inc(x_6); +lean_dec(x_1); +x_7 = lean_apply_1(x_3, x_6); +return x_7; } } -lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_MatcherApp_addArg_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_MatcherApp_addArg_match__1___rarg), 3, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_MatcherApp_addArg_match__2___rarg(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_3 = lean_ctor_get(x_1, 0); +lean_inc(x_3); +x_4 = lean_ctor_get(x_1, 1); +lean_inc(x_4); +lean_dec(x_1); +x_5 = lean_apply_2(x_2, x_3, x_4); +return x_5; +} +} +lean_object* l_Lean_Meta_MatcherApp_addArg_match__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_MatcherApp_addArg_match__2___rarg), 2, 0); +return x_2; +} +} +lean_object* l_Lean_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___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; uint8_t x_30; +x_30 = l_Lean_Expr_isFVar(x_2); +if (x_30 == 0) +{ +lean_object* x_31; +x_31 = lean_box(0); +x_9 = x_31; +goto block_29; +} +else +{ +lean_object* x_32; uint8_t x_33; +x_32 = lean_box(0); +x_33 = l_Lean_Occurrences_beq(x_3, x_32); +if (x_33 == 0) +{ +lean_object* x_34; +x_34 = lean_box(0); +x_9 = x_34; +goto block_29; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +x_35 = l_Lean_mkOptionalNode___closed__2; +x_36 = lean_array_push(x_35, x_2); +x_37 = lean_expr_abstract(x_1, x_36); +lean_dec(x_36); +lean_dec(x_1); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_8); +return x_38; +} +} +block_29: +{ +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_dec(x_9); +x_10 = l_Lean_Expr_toHeadIndex___main(x_2); +x_11 = lean_unsigned_to_nat(0u); +x_12 = l___private_Lean_HeadIndex_1__headNumArgsAux___main(x_2, x_11); +x_13 = lean_unsigned_to_nat(1u); +x_14 = lean_st_mk_ref(x_13, 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 = l___private_Lean_Meta_KAbstract_1__kabstractAux___main(x_3, x_2, x_10, x_12, x_1, x_11, x_15, x_4, x_5, x_6, x_7, x_16); +lean_dec(x_12); +lean_dec(x_10); +if (lean_obj_tag(x_17) == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; uint8_t x_21; +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_st_ref_get(x_15, x_19); +lean_dec(x_15); +x_21 = !lean_is_exclusive(x_20); +if (x_21 == 0) +{ +lean_object* x_22; +x_22 = lean_ctor_get(x_20, 0); +lean_dec(x_22); +lean_ctor_set(x_20, 0, x_18); +return x_20; +} +else +{ +lean_object* x_23; lean_object* x_24; +x_23 = lean_ctor_get(x_20, 1); +lean_inc(x_23); +lean_dec(x_20); +x_24 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_24, 0, x_18); +lean_ctor_set(x_24, 1, x_23); +return x_24; +} +} +else +{ +uint8_t x_25; +lean_dec(x_15); +x_25 = !lean_is_exclusive(x_17); +if (x_25 == 0) +{ +return x_17; +} +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_17, 0); +x_27 = lean_ctor_get(x_17, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_17); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +return x_28; +} +} +} +} +} +lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___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; uint8_t x_11; @@ -26816,80 +31997,81 @@ x_10 = lean_unsigned_to_nat(0u); x_11 = lean_nat_dec_eq(x_3, x_10); 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; lean_object* x_18; +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_12 = lean_unsigned_to_nat(1u); x_13 = lean_nat_sub(x_3, x_12); lean_dec(x_3); x_14 = l_Lean_Expr_Inhabited; -x_15 = lean_array_get(x_14, x_1, x_13); -x_16 = lean_array_get(x_14, x_2, x_13); -x_17 = lean_box(0); +x_15 = lean_array_get(x_14, x_2, x_13); +x_16 = lean_ctor_get(x_1, 5); +x_17 = lean_array_get(x_14, x_16, x_13); +x_18 = lean_box(0); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_18 = l_Lean_Meta_kabstract___at_Lean_Meta_GeneralizeTelescope_updateTypes___main___spec__1(x_4, x_16, x_17, x_5, x_6, x_7, x_8, x_9); -if (lean_obj_tag(x_18) == 0) +x_19 = l_Lean_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___spec__1(x_4, x_17, x_18, x_5, x_6, x_7, x_8, x_9); +if (lean_obj_tag(x_19) == 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_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_19, 0); lean_inc(x_20); -lean_dec(x_18); -x_21 = lean_expr_instantiate1(x_19, x_15); -lean_dec(x_15); +x_21 = lean_ctor_get(x_19, 1); +lean_inc(x_21); lean_dec(x_19); +x_22 = lean_expr_instantiate1(x_20, x_15); +lean_dec(x_15); +lean_dec(x_20); x_3 = x_13; -x_4 = x_21; -x_9 = x_20; +x_4 = x_22; +x_9 = x_21; goto _start; } else { -uint8_t x_23; +uint8_t x_24; lean_dec(x_15); lean_dec(x_13); lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); -x_23 = !lean_is_exclusive(x_18); -if (x_23 == 0) +x_24 = !lean_is_exclusive(x_19); +if (x_24 == 0) { -return x_18; +return x_19; } else { -lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_24 = lean_ctor_get(x_18, 0); -x_25 = lean_ctor_get(x_18, 1); +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_19, 0); +x_26 = lean_ctor_get(x_19, 1); +lean_inc(x_26); lean_inc(x_25); -lean_inc(x_24); -lean_dec(x_18); -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_dec(x_19); +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; } } } else { -lean_object* x_27; +lean_object* x_28; lean_dec(x_8); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); -x_27 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_27, 0, x_4); -lean_ctor_set(x_27, 1, x_9); -return x_27; +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_4); +lean_ctor_set(x_28, 1, x_9); +return x_28; } } } -lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___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; uint8_t x_10; @@ -26922,7 +32104,7 @@ return x_18; } } } -lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4___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: { uint8_t x_8; lean_object* x_9; @@ -26974,15 +32156,176 @@ return x_17; } } } -lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__3(lean_object* x_1) { +lean_object* l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__3___rarg), 7, 0); +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4___rarg), 7, 0); return x_2; } } -static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1() { +lean_object* l_Lean_Meta_MatcherApp_addArg___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_inc(x_13); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +x_15 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_1, 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; lean_object* 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_2, 6); +lean_inc(x_18); +x_19 = lean_ctor_get(x_2, 7); +lean_inc(x_19); +x_20 = lean_unsigned_to_nat(0u); +x_21 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts(x_16, x_18, x_19, x_20, x_10, x_11, x_12, x_13, x_17); +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; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_23 = lean_ctor_get(x_21, 0); +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_ctor_get(x_2, 2); +lean_inc(x_26); +x_27 = l_Lean_mkOptionalNode___closed__2; +x_28 = lean_array_push(x_27, x_3); +x_29 = lean_ctor_get(x_2, 8); +lean_inc(x_29); +lean_dec(x_2); +x_30 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_29, x_29, x_20, x_28); +lean_dec(x_29); +x_31 = lean_alloc_ctor(0, 9, 0); +lean_ctor_set(x_31, 0, x_4); +lean_ctor_set(x_31, 1, x_5); +lean_ctor_set(x_31, 2, x_26); +lean_ctor_set(x_31, 3, x_6); +lean_ctor_set(x_31, 4, x_7); +lean_ctor_set(x_31, 5, x_8); +lean_ctor_set(x_31, 6, x_24); +lean_ctor_set(x_31, 7, x_25); +lean_ctor_set(x_31, 8, x_30); +lean_ctor_set(x_21, 0, x_31); +return x_21; +} +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; +x_32 = lean_ctor_get(x_21, 0); +x_33 = lean_ctor_get(x_21, 1); +lean_inc(x_33); +lean_inc(x_32); +lean_dec(x_21); +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_2, 2); +lean_inc(x_36); +x_37 = l_Lean_mkOptionalNode___closed__2; +x_38 = lean_array_push(x_37, x_3); +x_39 = lean_ctor_get(x_2, 8); +lean_inc(x_39); +lean_dec(x_2); +x_40 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_39, x_39, x_20, x_38); +lean_dec(x_39); +x_41 = lean_alloc_ctor(0, 9, 0); +lean_ctor_set(x_41, 0, x_4); +lean_ctor_set(x_41, 1, x_5); +lean_ctor_set(x_41, 2, x_36); +lean_ctor_set(x_41, 3, x_6); +lean_ctor_set(x_41, 4, x_7); +lean_ctor_set(x_41, 5, x_8); +lean_ctor_set(x_41, 6, x_34); +lean_ctor_set(x_41, 7, x_35); +lean_ctor_set(x_41, 8, x_40); +x_42 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_42, 0, x_41); +lean_ctor_set(x_42, 1, x_33); +return x_42; +} +} +else +{ +uint8_t x_43; +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_43 = !lean_is_exclusive(x_21); +if (x_43 == 0) +{ +return x_21; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_21, 0); +x_45 = lean_ctor_get(x_21, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_21); +x_46 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_46, 0, x_44); +lean_ctor_set(x_46, 1, x_45); +return x_46; +} +} +} +else +{ +uint8_t x_47; +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); +x_47 = !lean_is_exclusive(x_15); +if (x_47 == 0) +{ +return x_15; +} +else +{ +lean_object* x_48; lean_object* x_49; lean_object* x_50; +x_48 = lean_ctor_get(x_15, 0); +x_49 = lean_ctor_get(x_15, 1); +lean_inc(x_49); +lean_inc(x_48); +lean_dec(x_15); +x_50 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_50, 0, x_48); +lean_ctor_set(x_50, 1, x_49); +return x_50; +} +} +} +} +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1() { _start: { lean_object* x_1; @@ -26990,27 +32333,431 @@ x_1 = lean_mk_string("failed to add argument to matcher application, type error return x_1; } } -static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2() { +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1; +x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1; x_2 = lean_alloc_ctor(2, 1, 0); lean_ctor_set(x_2, 0, x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3() { +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2; +x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2; 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_Meta_MatcherApp_addArg___lambda__1___closed__4() { +lean_object* l_Lean_Meta_MatcherApp_addArg___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_inc(x_7); +x_12 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_introNCore___spec__2(x_1, x_2, 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; 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_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +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_3, 0); +lean_inc(x_15); +x_16 = l_Array_toList___rarg(x_6); +lean_inc(x_15); +x_17 = l_Lean_mkConst(x_15, x_16); +x_18 = lean_ctor_get(x_3, 3); +lean_inc(x_18); +x_19 = lean_unsigned_to_nat(0u); +x_20 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_18, x_18, x_19, x_17); +lean_inc(x_13); +x_21 = l_Lean_mkApp(x_20, x_13); +x_22 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_4, x_4, x_19, x_21); +x_44 = lean_st_ref_get(x_10, x_14); +x_45 = lean_ctor_get(x_44, 0); +lean_inc(x_45); +x_46 = lean_ctor_get(x_45, 3); +lean_inc(x_46); +lean_dec(x_45); +x_47 = lean_ctor_get_uint8(x_46, sizeof(void*)*1); +lean_dec(x_46); +if (x_47 == 0) +{ +lean_object* x_48; +x_48 = lean_ctor_get(x_44, 1); +lean_inc(x_48); +lean_dec(x_44); +x_23 = x_48; +goto block_43; +} +else +{ +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_44, 1); +lean_inc(x_49); +lean_dec(x_44); +x_50 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__4; +x_51 = l___private_Lean_Util_Trace_3__checkTraceOptionM___at_Lean_Meta_substCore___spec__13(x_50, x_7, x_8, x_9, x_10, x_49); +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +x_53 = lean_unbox(x_52); +lean_dec(x_52); +if (x_53 == 0) +{ +lean_object* x_54; +x_54 = lean_ctor_get(x_51, 1); +lean_inc(x_54); +lean_dec(x_51); +x_23 = x_54; +goto block_43; +} +else +{ +lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_55 = lean_ctor_get(x_51, 1); +lean_inc(x_55); +lean_dec(x_51); +lean_inc(x_22); +x_56 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_56, 0, x_22); +x_57 = l_Lean_addTrace___at_Lean_Meta_substCore___spec__12(x_50, x_56, x_7, x_8, x_9, x_10, x_55); +x_58 = lean_ctor_get(x_57, 1); +lean_inc(x_58); +lean_dec(x_57); +x_23 = x_58; +goto block_43; +} +} +block_43: +{ +lean_object* x_24; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_22); +x_24 = l_Lean_Meta_check(x_22, x_7, x_8, x_9, x_10, x_23); +if (lean_obj_tag(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_24, 1); +lean_inc(x_25); +lean_dec(x_24); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_22); +x_26 = l_Lean_Meta_isTypeCorrect(x_22, x_7, x_8, x_9, x_10, x_25); +x_27 = lean_ctor_get(x_26, 0); +lean_inc(x_27); +x_28 = lean_unbox(x_27); +lean_dec(x_27); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; +lean_dec(x_22); +lean_dec(x_18); +lean_dec(x_15); +lean_dec(x_13); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_29 = lean_ctor_get(x_26, 1); +lean_inc(x_29); +lean_dec(x_26); +x_30 = l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3; +x_31 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_30, x_7, x_8, x_9, x_10, x_29); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_32 = !lean_is_exclusive(x_31); +if (x_32 == 0) +{ +return x_31; +} +else +{ +lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_33 = lean_ctor_get(x_31, 0); +x_34 = lean_ctor_get(x_31, 1); +lean_inc(x_34); +lean_inc(x_33); +lean_dec(x_31); +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; +x_36 = lean_ctor_get(x_26, 1); +lean_inc(x_36); +lean_dec(x_26); +x_37 = lean_box(0); +x_38 = l_Lean_Meta_MatcherApp_addArg___lambda__1(x_22, x_3, x_5, x_15, x_6, x_18, x_13, x_4, x_37, x_7, x_8, x_9, x_10, x_36); +return x_38; +} +} +else +{ +uint8_t x_39; +lean_dec(x_22); +lean_dec(x_18); +lean_dec(x_15); +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_3); +x_39 = !lean_is_exclusive(x_24); +if (x_39 == 0) +{ +return x_24; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_24, 0); +x_41 = lean_ctor_get(x_24, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_24); +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_59; +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); +x_59 = !lean_is_exclusive(x_12); +if (x_59 == 0) +{ +return x_12; +} +else +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_60 = lean_ctor_get(x_12, 0); +x_61 = lean_ctor_get(x_12, 1); +lean_inc(x_61); +lean_inc(x_60); +lean_dec(x_12); +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; +} +} +} +} +lean_object* l_Lean_Meta_MatcherApp_addArg___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) { +_start: +{ +lean_object* x_11; +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_1); +x_11 = l_Lean_Meta_inferType___at_Lean_Meta_getArrayArgType___spec__1(x_1, x_6, x_7, x_8, x_9, x_10); +if (lean_obj_tag(x_11) == 0) +{ +lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; +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_2, 5); +lean_inc(x_14); +x_15 = lean_array_get_size(x_14); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_16 = l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__2(x_2, x_3, x_15, x_12, x_6, x_7, x_8, x_9, 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, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_16, 1); +lean_inc(x_18); +lean_dec(x_16); +x_19 = l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__3(x_17, x_4, x_6, x_7, x_8, x_9, x_18); +x_20 = lean_ctor_get(x_2, 2); +lean_inc(x_20); +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_19, 0); +lean_inc(x_21); +x_22 = lean_ctor_get(x_19, 1); +lean_inc(x_22); +lean_dec(x_19); +x_23 = lean_ctor_get(x_2, 1); +lean_inc(x_23); +x_24 = l_Lean_Meta_MatcherApp_addArg___lambda__2(x_3, x_21, x_2, x_14, x_1, x_23, x_6, x_7, x_8, x_9, x_22); +return x_24; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_25 = lean_ctor_get(x_19, 0); +lean_inc(x_25); +x_26 = lean_ctor_get(x_19, 1); +lean_inc(x_26); +lean_dec(x_19); +x_27 = lean_ctor_get(x_20, 0); +lean_inc(x_27); +lean_dec(x_20); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_25); +x_28 = l___private_Lean_Meta_InferType_4__getLevelImp(x_25, x_6, x_7, x_8, x_9, 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; +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_2, 1); +lean_inc(x_31); +x_32 = lean_array_set(x_31, x_27, x_29); +lean_dec(x_27); +x_33 = l_Lean_Meta_MatcherApp_addArg___lambda__2(x_3, x_25, x_2, x_14, x_1, x_32, x_6, x_7, x_8, x_9, x_30); +return x_33; +} +else +{ +uint8_t x_34; +lean_dec(x_27); +lean_dec(x_25); +lean_dec(x_14); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +x_34 = !lean_is_exclusive(x_28); +if (x_34 == 0) +{ +return x_28; +} +else +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_35 = lean_ctor_get(x_28, 0); +x_36 = lean_ctor_get(x_28, 1); +lean_inc(x_36); +lean_inc(x_35); +lean_dec(x_28); +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; +} +} +} +} +else +{ +uint8_t x_38; +lean_dec(x_14); +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_38 = !lean_is_exclusive(x_16); +if (x_38 == 0) +{ +return x_16; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; +x_39 = lean_ctor_get(x_16, 0); +x_40 = lean_ctor_get(x_16, 1); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_16); +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_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_42 = !lean_is_exclusive(x_11); +if (x_42 == 0) +{ +return x_11; +} +else +{ +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; +} +} +} +} +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1() { _start: { lean_object* x_1; @@ -27018,588 +32765,84 @@ x_1 = lean_mk_string("unexpected matcher application, motive must be lambda expr return x_1; } } -static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5() { +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__4; -x_2 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6() { +static lean_object* _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3() { _start: { lean_object* x_1; lean_object* x_2; -x_1 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5; -x_2 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_2, 0, x_1); +x_1 = l___private_Lean_Meta_RecursorInfo_5__getMajorPosDepElim___closed__19; +x_2 = l_Lean_stringToMessageData(x_1); return x_2; } } -lean_object* l_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_MatcherApp_addArg___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) { _start: { -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_118; +lean_object* x_10; lean_object* x_11; lean_object* x_12; uint8_t x_13; x_10 = lean_array_get_size(x_3); -x_11 = lean_ctor_get(x_1, 5); +x_11 = lean_ctor_get(x_2, 5); lean_inc(x_11); x_12 = lean_array_get_size(x_11); -x_118 = lean_nat_dec_eq(x_10, x_12); -lean_dec(x_10); -if (x_118 == 0) -{ -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; uint8_t x_127; lean_dec(x_11); +x_13 = lean_nat_dec_eq(x_10, x_12); +lean_dec(x_10); +if (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; uint8_t x_21; lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); lean_dec(x_1); -x_119 = l_Nat_repr(x_12); -x_120 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_120, 0, x_119); -x_121 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_121, 0, x_120); -x_122 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6; -x_123 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_123, 0, x_122); -lean_ctor_set(x_123, 1, x_121); -x_124 = l___private_Lean_Meta_RecursorInfo_5__getMajorPosDepElim___closed__21; -x_125 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_125, 0, x_123); -lean_ctor_set(x_125, 1, x_124); -x_126 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_125, x_5, x_6, x_7, x_8, x_9); +x_14 = l_Lean_fmt___at_Lean_Position_Lean_HasFormat___spec__1(x_12); +x_15 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_15, 0, x_14); +x_16 = l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2; +x_17 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +x_18 = l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3; +x_19 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_19, 0, x_17); +lean_ctor_set(x_19, 1, x_18); +x_20 = l_Lean_throwError___at_Lean_Meta_getArrayArgType___spec__3___rarg(x_19, 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_127 = !lean_is_exclusive(x_126); -if (x_127 == 0) +x_21 = !lean_is_exclusive(x_20); +if (x_21 == 0) { -return x_126; +return x_20; } else { -lean_object* x_128; lean_object* x_129; lean_object* x_130; -x_128 = lean_ctor_get(x_126, 0); -x_129 = lean_ctor_get(x_126, 1); -lean_inc(x_129); -lean_inc(x_128); -lean_dec(x_126); -x_130 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_130, 0, x_128); -lean_ctor_set(x_130, 1, x_129); -return x_130; -} -} -else -{ -x_13 = x_9; -goto block_117; -} -block_117: -{ -lean_object* x_14; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_2); -x_14 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_2, x_5, x_6, x_7, x_8, x_13); -if (lean_obj_tag(x_14) == 0) -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -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_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_17 = l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__1(x_3, x_11, x_12, x_15, x_5, x_6, x_7, x_8, 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; lean_object* x_23; lean_object* x_24; lean_object* x_25; -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_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__2(x_18, x_4, x_5, x_6, x_7, x_8, x_19); -x_21 = lean_ctor_get(x_20, 0); -lean_inc(x_21); -x_22 = lean_ctor_get(x_20, 1); +lean_object* x_22; lean_object* x_23; lean_object* x_24; +x_22 = lean_ctor_get(x_20, 0); +x_23 = lean_ctor_get(x_20, 1); +lean_inc(x_23); lean_inc(x_22); lean_dec(x_20); -x_23 = lean_ctor_get(x_1, 2); -lean_inc(x_23); -if (lean_obj_tag(x_23) == 0) -{ -lean_object* x_98; -x_98 = lean_ctor_get(x_1, 1); -lean_inc(x_98); -x_24 = x_98; -x_25 = x_22; -goto block_97; -} -else -{ -lean_object* x_99; lean_object* x_100; -x_99 = lean_ctor_get(x_23, 0); -lean_inc(x_99); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_21); -x_100 = l___private_Lean_Meta_InferType_4__getLevelImp(x_21, x_5, x_6, x_7, x_8, x_22); -if (lean_obj_tag(x_100) == 0) -{ -lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; -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 = lean_ctor_get(x_1, 1); -lean_inc(x_103); -x_104 = lean_array_set(x_103, x_99, x_101); -lean_dec(x_99); -x_24 = x_104; -x_25 = x_102; -goto block_97; -} -else -{ -uint8_t x_105; -lean_dec(x_99); -lean_dec(x_23); -lean_dec(x_21); -lean_dec(x_11); -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_105 = !lean_is_exclusive(x_100); -if (x_105 == 0) -{ -return x_100; -} -else -{ -lean_object* x_106; lean_object* x_107; lean_object* x_108; -x_106 = lean_ctor_get(x_100, 0); -x_107 = lean_ctor_get(x_100, 1); -lean_inc(x_107); -lean_inc(x_106); -lean_dec(x_100); -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; -} -} -} -block_97: -{ -lean_object* x_26; -lean_inc(x_5); -x_26 = l_Lean_Meta_mkLambdaFVars___at_Lean_Meta_SynthInstance_tryResolveCore___spec__1(x_3, x_21, x_5, x_6, x_7, x_8, x_25); -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; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; -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); -x_30 = l_Array_toList___rarg(x_24); -lean_inc(x_29); -x_31 = l_Lean_mkConst(x_29, x_30); -x_32 = lean_ctor_get(x_1, 3); -lean_inc(x_32); -x_33 = lean_unsigned_to_nat(0u); -x_34 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_32, x_32, x_33, x_31); -lean_inc(x_27); -x_35 = l_Lean_mkApp(x_34, x_27); -x_36 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_11, x_11, x_33, x_35); -lean_inc(x_36); -x_72 = lean_alloc_closure((void*)(l___private_Lean_Meta_WHNF_12__whnfEasyCases___main___at___private_Lean_Meta_WHNF_17__whnfCoreImp___main___spec__2___lambda__1___boxed), 2, 1); -lean_closure_set(x_72, 0, x_36); -x_73 = l___private_Lean_Meta_Basic_1__regTraceClasses___closed__4; -x_74 = l_Lean_MonadTracer_trace___at_Lean_Meta_isLevelDefEq___spec__2(x_73, x_72, x_5, x_6, x_7, x_8, x_28); -x_75 = lean_ctor_get(x_74, 1); -lean_inc(x_75); -lean_dec(x_74); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_36); -x_76 = l_Lean_Meta_check(x_36, x_5, x_6, x_7, x_8, x_75); -if (lean_obj_tag(x_76) == 0) -{ -lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; -x_77 = lean_ctor_get(x_76, 1); -lean_inc(x_77); -lean_dec(x_76); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_36); -x_78 = l_Lean_Meta_isTypeCorrect(x_36, x_5, x_6, x_7, x_8, x_77); -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) -{ -lean_object* x_81; lean_object* x_82; lean_object* x_83; uint8_t x_84; -lean_dec(x_36); -lean_dec(x_32); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_11); -lean_dec(x_2); -lean_dec(x_1); -x_81 = lean_ctor_get(x_78, 1); -lean_inc(x_81); -lean_dec(x_78); -x_82 = l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3; -x_83 = l_Lean_throwError___at_Lean_Meta_mkWHNFRef___spec__1___rarg(x_82, x_5, x_6, x_7, x_8, x_81); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -x_84 = !lean_is_exclusive(x_83); -if (x_84 == 0) -{ -return x_83; -} -else -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; -x_85 = lean_ctor_get(x_83, 0); -x_86 = lean_ctor_get(x_83, 1); -lean_inc(x_86); -lean_inc(x_85); -lean_dec(x_83); -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; +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; } } else { -lean_object* x_88; -x_88 = lean_ctor_get(x_78, 1); -lean_inc(x_88); -lean_dec(x_78); -x_37 = x_88; -goto block_71; -} -} -else -{ -uint8_t x_89; -lean_dec(x_36); -lean_dec(x_32); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_11); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_89 = !lean_is_exclusive(x_76); -if (x_89 == 0) -{ -return x_76; -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; -x_90 = lean_ctor_get(x_76, 0); -x_91 = lean_ctor_get(x_76, 1); -lean_inc(x_91); -lean_inc(x_90); -lean_dec(x_76); -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; -} -} -block_71: -{ -lean_object* x_38; -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -x_38 = l_Lean_Meta_inferType___at___private_Lean_Meta_InferType_1__inferAppType___spec__1(x_36, x_5, x_6, x_7, x_8, x_37); -if (lean_obj_tag(x_38) == 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_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_ctor_get(x_1, 6); -lean_inc(x_41); -x_42 = lean_ctor_get(x_1, 7); -lean_inc(x_42); -x_43 = l___private_Lean_Meta_Match_Match_42__updateAlts___main(x_39, x_41, x_42, x_33, x_5, x_6, x_7, x_8, x_40); -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; 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_43, 0); -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_mkOptionalNode___closed__2; -x_49 = lean_array_push(x_48, x_2); -x_50 = lean_ctor_get(x_1, 8); -lean_inc(x_50); -lean_dec(x_1); -x_51 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_50, x_50, x_33, x_49); -lean_dec(x_50); -x_52 = lean_alloc_ctor(0, 9, 0); -lean_ctor_set(x_52, 0, x_29); -lean_ctor_set(x_52, 1, x_24); -lean_ctor_set(x_52, 2, x_23); -lean_ctor_set(x_52, 3, x_32); -lean_ctor_set(x_52, 4, x_27); -lean_ctor_set(x_52, 5, x_11); -lean_ctor_set(x_52, 6, x_46); -lean_ctor_set(x_52, 7, x_47); -lean_ctor_set(x_52, 8, x_51); -lean_ctor_set(x_43, 0, x_52); -return x_43; -} -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; -x_53 = lean_ctor_get(x_43, 0); -x_54 = lean_ctor_get(x_43, 1); -lean_inc(x_54); -lean_inc(x_53); -lean_dec(x_43); -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); -x_57 = l_Lean_mkOptionalNode___closed__2; -x_58 = lean_array_push(x_57, x_2); -x_59 = lean_ctor_get(x_1, 8); -lean_inc(x_59); -lean_dec(x_1); -x_60 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_59, x_59, x_33, x_58); -lean_dec(x_59); -x_61 = lean_alloc_ctor(0, 9, 0); -lean_ctor_set(x_61, 0, x_29); -lean_ctor_set(x_61, 1, x_24); -lean_ctor_set(x_61, 2, x_23); -lean_ctor_set(x_61, 3, x_32); -lean_ctor_set(x_61, 4, x_27); -lean_ctor_set(x_61, 5, x_11); -lean_ctor_set(x_61, 6, x_55); -lean_ctor_set(x_61, 7, x_56); -lean_ctor_set(x_61, 8, 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_54); -return x_62; -} -} -else -{ -uint8_t x_63; -lean_dec(x_32); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_11); -lean_dec(x_2); -lean_dec(x_1); -x_63 = !lean_is_exclusive(x_43); -if (x_63 == 0) -{ -return x_43; -} -else -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; -x_64 = lean_ctor_get(x_43, 0); -x_65 = lean_ctor_get(x_43, 1); -lean_inc(x_65); -lean_inc(x_64); -lean_dec(x_43); -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_32); -lean_dec(x_29); -lean_dec(x_27); -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_11); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_67 = !lean_is_exclusive(x_38); -if (x_67 == 0) -{ -return x_38; -} -else -{ -lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_68 = lean_ctor_get(x_38, 0); -x_69 = lean_ctor_get(x_38, 1); -lean_inc(x_69); -lean_inc(x_68); -lean_dec(x_38); -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_93; -lean_dec(x_24); -lean_dec(x_23); -lean_dec(x_11); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_2); -lean_dec(x_1); -x_93 = !lean_is_exclusive(x_26); -if (x_93 == 0) -{ -return x_26; -} -else -{ -lean_object* x_94; lean_object* x_95; lean_object* x_96; -x_94 = lean_ctor_get(x_26, 0); -x_95 = lean_ctor_get(x_26, 1); -lean_inc(x_95); -lean_inc(x_94); -lean_dec(x_26); -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_109; -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); -lean_dec(x_1); -x_109 = !lean_is_exclusive(x_17); -if (x_109 == 0) -{ -return x_17; -} -else -{ -lean_object* x_110; lean_object* x_111; lean_object* x_112; -x_110 = lean_ctor_get(x_17, 0); -x_111 = lean_ctor_get(x_17, 1); -lean_inc(x_111); -lean_inc(x_110); -lean_dec(x_17); -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 -{ -uint8_t x_113; +lean_object* x_25; lean_object* x_26; lean_dec(x_12); -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); -lean_dec(x_1); -x_113 = !lean_is_exclusive(x_14); -if (x_113 == 0) -{ -return x_14; -} -else -{ -lean_object* x_114; lean_object* x_115; lean_object* x_116; -x_114 = lean_ctor_get(x_14, 0); -x_115 = lean_ctor_get(x_14, 1); -lean_inc(x_115); -lean_inc(x_114); -lean_dec(x_14); -x_116 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_116, 0, x_114); -lean_ctor_set(x_116, 1, x_115); -return x_116; -} -} +x_25 = lean_box(0); +x_26 = l_Lean_Meta_MatcherApp_addArg___lambda__3(x_1, x_2, x_3, x_4, x_25, x_5, x_6, x_7, x_8, x_9); +return x_26; } } } @@ -27609,28 +32852,37 @@ _start: lean_object* x_8; lean_object* x_9; lean_object* x_10; x_8 = lean_ctor_get(x_1, 4); lean_inc(x_8); -x_9 = lean_alloc_closure((void*)(l_Lean_Meta_MatcherApp_addArg___lambda__1), 9, 2); -lean_closure_set(x_9, 0, x_1); -lean_closure_set(x_9, 1, x_2); -x_10 = l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__3___rarg(x_8, x_9, x_3, x_4, x_5, x_6, x_7); +x_9 = lean_alloc_closure((void*)(l_Lean_Meta_MatcherApp_addArg___lambda__4), 9, 2); +lean_closure_set(x_9, 0, x_2); +lean_closure_set(x_9, 1, x_1); +x_10 = l_Lean_Meta_lambdaTelescope___at_Lean_Meta_MatcherApp_addArg___spec__4___rarg(x_8, x_9, x_3, x_4, x_5, x_6, x_7); return x_10; } } -lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___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_Meta_kabstract___at_Lean_Meta_MatcherApp_addArg___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_3); +return x_9; +} +} +lean_object* l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___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: { lean_object* x_10; -x_10 = l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_10 = l_Nat_foldRevMAux___main___at_Lean_Meta_MatcherApp_addArg___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); lean_dec(x_2); lean_dec(x_1); return x_10; } } -lean_object* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___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* l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___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_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7); +x_8 = l_Lean_Meta_mkArrow___at_Lean_Meta_MatcherApp_addArg___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); @@ -27638,11 +32890,29 @@ lean_dec(x_3); return x_8; } } -lean_object* l___private_Lean_Meta_Match_Match_43__regTraceClasses(lean_object* x_1) { +lean_object* l_Lean_Meta_MatcherApp_addArg___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_15; +x_15 = l_Lean_Meta_MatcherApp_addArg___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_9); +return x_15; +} +} +lean_object* l_Lean_Meta_MatcherApp_addArg___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) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Meta_MatcherApp_addArg___lambda__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_5); +return x_11; +} +} +lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Match_Match___hyg_7756_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; -x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2; +x_2 = l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4; x_3 = l_Lean_registerTraceClass(x_2, x_1); if (lean_obj_tag(x_3) == 0) { @@ -27650,7 +32920,7 @@ lean_object* x_4; lean_object* x_5; lean_object* x_6; x_4 = lean_ctor_get(x_3, 1); lean_inc(x_4); lean_dec(x_3); -x_5 = l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3; +x_5 = l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3; x_6 = l_Lean_registerTraceClass(x_5, x_4); if (lean_obj_tag(x_6) == 0) { @@ -27660,98 +32930,51 @@ lean_inc(x_7); lean_dec(x_6); x_8 = l_Lean_Meta_Match_Unify_assign___closed__2; x_9 = l_Lean_registerTraceClass(x_8, x_7); -if (lean_obj_tag(x_9) == 0) +return x_9; +} +else { uint8_t x_10; -x_10 = !lean_is_exclusive(x_9); +x_10 = !lean_is_exclusive(x_6); if (x_10 == 0) { -lean_object* x_11; lean_object* x_12; -x_11 = lean_ctor_get(x_9, 0); -lean_dec(x_11); -x_12 = lean_box(0); -lean_ctor_set(x_9, 0, x_12); -return x_9; -} -else -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; -x_13 = lean_ctor_get(x_9, 1); -lean_inc(x_13); -lean_dec(x_9); -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 -{ -uint8_t x_16; -x_16 = !lean_is_exclusive(x_9); -if (x_16 == 0) -{ -return x_9; -} -else -{ -lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_17 = lean_ctor_get(x_9, 0); -x_18 = lean_ctor_get(x_9, 1); -lean_inc(x_18); -lean_inc(x_17); -lean_dec(x_9); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_17); -lean_ctor_set(x_19, 1, x_18); -return x_19; -} -} -} -else -{ -uint8_t x_20; -x_20 = !lean_is_exclusive(x_6); -if (x_20 == 0) -{ return x_6; } else { -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_6, 0); -x_22 = lean_ctor_get(x_6, 1); -lean_inc(x_22); -lean_inc(x_21); +lean_object* x_11; lean_object* x_12; lean_object* x_13; +x_11 = lean_ctor_get(x_6, 0); +x_12 = lean_ctor_get(x_6, 1); +lean_inc(x_12); +lean_inc(x_11); lean_dec(x_6); -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; +x_13 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_13, 0, x_11); +lean_ctor_set(x_13, 1, x_12); +return x_13; } } } else { -uint8_t x_24; -x_24 = !lean_is_exclusive(x_3); -if (x_24 == 0) +uint8_t x_14; +x_14 = !lean_is_exclusive(x_3); +if (x_14 == 0) { return x_3; } else { -lean_object* x_25; lean_object* x_26; lean_object* x_27; -x_25 = lean_ctor_get(x_3, 0); -x_26 = lean_ctor_get(x_3, 1); -lean_inc(x_26); -lean_inc(x_25); +lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_15 = lean_ctor_get(x_3, 0); +x_16 = lean_ctor_get(x_3, 1); +lean_inc(x_16); +lean_inc(x_15); lean_dec(x_3); -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; +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; } } } @@ -27801,36 +33024,38 @@ lean_dec_ref(res); res = initialize_Lean_Meta_Match_CaseArraySizes(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Meta_Match_Pattern_Inhabited___closed__1 = _init_l_Lean_Meta_Match_Pattern_Inhabited___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_Inhabited___closed__1); -l_Lean_Meta_Match_Pattern_Inhabited = _init_l_Lean_Meta_Match_Pattern_Inhabited(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_Inhabited); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__1); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__2); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__3); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__4); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__5); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__6); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__7); -l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8 = _init_l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8(); -lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___main___closed__8); -l_Lean_Meta_Match_Alt_Inhabited___closed__1 = _init_l_Lean_Meta_Match_Alt_Inhabited___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Alt_Inhabited___closed__1); -l_Lean_Meta_Match_Alt_Inhabited = _init_l_Lean_Meta_Match_Alt_Inhabited(); -lean_mark_persistent(l_Lean_Meta_Match_Alt_Inhabited); +l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1 = _init_l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1___closed__1); +l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1 = _init_l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_Lean_Meta_Match_Match___instance__1); +l_Lean_Meta_Match_Pattern_toMessageData___closed__1 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__1); +l_Lean_Meta_Match_Pattern_toMessageData___closed__2 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__2(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__2); +l_Lean_Meta_Match_Pattern_toMessageData___closed__3 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__3(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__3); +l_Lean_Meta_Match_Pattern_toMessageData___closed__4 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__4); +l_Lean_Meta_Match_Pattern_toMessageData___closed__5 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__5(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__5); +l_Lean_Meta_Match_Pattern_toMessageData___closed__6 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__6(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__6); +l_Lean_Meta_Match_Pattern_toMessageData___closed__7 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__7(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__7); +l_Lean_Meta_Match_Pattern_toMessageData___closed__8 = _init_l_Lean_Meta_Match_Pattern_toMessageData___closed__8(); +lean_mark_persistent(l_Lean_Meta_Match_Pattern_toMessageData___closed__8); +l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1 = _init_l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2___closed__1); +l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2 = _init_l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2(); +lean_mark_persistent(l_Lean_Meta_Match_Alt_Lean_Meta_Match_Match___instance__2); l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__1 = _init_l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__1(); lean_mark_persistent(l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__1); l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__2 = _init_l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__2(); lean_mark_persistent(l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__2); l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__3 = _init_l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__3(); lean_mark_persistent(l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__3); +l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4 = _init_l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4(); +lean_mark_persistent(l_List_map___main___at_Lean_Meta_Match_Alt_toMessageData___spec__1___closed__4); l_Lean_Meta_Match_Alt_toMessageData___closed__1 = _init_l_Lean_Meta_Match_Alt_toMessageData___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_Alt_toMessageData___closed__1); l_Lean_Meta_Match_Alt_toMessageData___closed__2 = _init_l_Lean_Meta_Match_Alt_toMessageData___closed__2(); @@ -27857,22 +33082,18 @@ l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8 = _init_l_Lean_Meta_Matc lean_mark_persistent(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__8); l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9 = _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9(); lean_mark_persistent(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__9); -l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__10 = _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__10(); -lean_mark_persistent(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__10); -l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11 = _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11(); -lean_mark_persistent(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__11); -l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12 = _init_l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12(); -lean_mark_persistent(l_Lean_Meta_Match_Alt_checkAndReplaceFVarId___closed__12); -l_Lean_Meta_Match_Example_toMessageData___main___closed__1 = _init_l_Lean_Meta_Match_Example_toMessageData___main___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___main___closed__1); -l_Lean_Meta_Match_Example_toMessageData___main___closed__2 = _init_l_Lean_Meta_Match_Example_toMessageData___main___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___main___closed__2); -l_Lean_Meta_Match_Example_toMessageData___main___closed__3 = _init_l_Lean_Meta_Match_Example_toMessageData___main___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___main___closed__3); -l_Lean_Meta_Match_Problem_Inhabited___closed__1 = _init_l_Lean_Meta_Match_Problem_Inhabited___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Problem_Inhabited___closed__1); -l_Lean_Meta_Match_Problem_Inhabited = _init_l_Lean_Meta_Match_Problem_Inhabited(); -lean_mark_persistent(l_Lean_Meta_Match_Problem_Inhabited); +l_Lean_Meta_Match_Example_toMessageData___closed__1 = _init_l_Lean_Meta_Match_Example_toMessageData___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___closed__1); +l_Lean_Meta_Match_Example_toMessageData___closed__2 = _init_l_Lean_Meta_Match_Example_toMessageData___closed__2(); +lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___closed__2); +l_Lean_Meta_Match_Example_toMessageData___closed__3 = _init_l_Lean_Meta_Match_Example_toMessageData___closed__3(); +lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___closed__3); +l_Lean_Meta_Match_Example_toMessageData___closed__4 = _init_l_Lean_Meta_Match_Example_toMessageData___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_Example_toMessageData___closed__4); +l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1 = _init_l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3___closed__1); +l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3 = _init_l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3(); +lean_mark_persistent(l_Lean_Meta_Match_Problem_Lean_Meta_Match_Match___instance__3); l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__1 = _init_l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__1); l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__2 = _init_l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__2(); @@ -27891,144 +33112,182 @@ l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__8 = _init_l_Lean_M lean_mark_persistent(l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__8); l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__9 = _init_l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__9(); lean_mark_persistent(l_Lean_Meta_Match_Problem_toMessageData___lambda__1___closed__9); -l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1 = _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__1); -l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2 = _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__2); -l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3 = _init_l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_1__checkNumPatterns___closed__3); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__1); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__2); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___lambda__2___closed__3); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__1); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__2); -l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3 = _init_l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_2__withAltsAux___main___rarg___closed__3); -l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1 = _init_l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__1); -l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2 = _init_l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_21__throwInductiveTypeExpected___rarg___closed__2); -l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1 = _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__1___closed__1); -l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2 = _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__1___closed__2); -l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3 = _init_l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__1___closed__3); -l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1 = _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__3___closed__1); -l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2 = _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__3___closed__2); -l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3 = _init_l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___lambda__3___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_checkNumPatterns___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__4); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__5); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_withAltsAux___rarg___closed__6); +l_Lean_Meta_Match_State_used___default___closed__1 = _init_l_Lean_Meta_Match_State_used___default___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_State_used___default___closed__1); +l_Lean_Meta_Match_State_used___default = _init_l_Lean_Meta_Match_State_used___default(); +lean_mark_persistent(l_Lean_Meta_Match_State_used___default); +l_Lean_Meta_Match_State_counterExamples___default = _init_l_Lean_Meta_Match_State_counterExamples___default(); +lean_mark_persistent(l_Lean_Meta_Match_State_counterExamples___default); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__1); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__2); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___spec__1___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processSkipInaccessible___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processAsPattern___closed__2); +l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1 = _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1(); +lean_mark_persistent(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__1); +l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2 = _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2(); +lean_mark_persistent(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___spec__1___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processVariable___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwInductiveTypeExpected___rarg___closed__2); +l_Lean_Meta_Match_Unify_State_fvarSubst___default = _init_l_Lean_Meta_Match_Unify_State_fvarSubst___default(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_State_fvarSubst___default); l_Lean_Meta_Match_Unify_assign___closed__1 = _init_l_Lean_Meta_Match_Unify_assign___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__1); l_Lean_Meta_Match_Unify_assign___closed__2 = _init_l_Lean_Meta_Match_Unify_assign___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__2); -l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1 = _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__1); -l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2 = _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__2); -l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3 = _init_l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___main___lambda__1___closed__3); +l_Lean_Meta_Match_Unify_assign___closed__3 = _init_l_Lean_Meta_Match_Unify_assign___closed__3(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__3); +l_Lean_Meta_Match_Unify_assign___closed__4 = _init_l_Lean_Meta_Match_Unify_assign___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__4); +l_Lean_Meta_Match_Unify_assign___closed__5 = _init_l_Lean_Meta_Match_Unify_assign___closed__5(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__5); +l_Lean_Meta_Match_Unify_assign___closed__6 = _init_l_Lean_Meta_Match_Unify_assign___closed__6(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__6); +l_Lean_Meta_Match_Unify_assign___closed__7 = _init_l_Lean_Meta_Match_Unify_assign___closed__7(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__7); +l_Lean_Meta_Match_Unify_assign___closed__8 = _init_l_Lean_Meta_Match_Unify_assign___closed__8(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_assign___closed__8); +l_Lean_Meta_Match_Unify_unify___closed__1 = _init_l_Lean_Meta_Match_Unify_unify___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___closed__1); +l_Lean_Meta_Match_Unify_unify___closed__2 = _init_l_Lean_Meta_Match_Unify_unify___closed__2(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___closed__2); +l_Lean_Meta_Match_Unify_unify___closed__3 = _init_l_Lean_Meta_Match_Unify_unify___closed__3(); +lean_mark_persistent(l_Lean_Meta_Match_Unify_unify___closed__3); l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__1 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__1); l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__2 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__2); l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3(); lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__3); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__1); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__2); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__3); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__4); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__5); -l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6(); -lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__2___closed__6); +l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__4 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___lambda__1___closed__4); l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__1); l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__2); -l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_27__processConstructor___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1 = _init_l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_27__processConstructor___closed__1); -l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1(); -lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__1); -l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2(); -lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__2); -l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3(); -lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_28__processNonVariable___spec__1___closed__3); -l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_28__processNonVariable___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_31__processValue___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_31__processValue___closed__1 = _init_l___private_Lean_Meta_Match_Match_31__processValue___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_31__processValue___closed__1); -l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_35__processArrayLit___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1 = _init_l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_35__processArrayLit___closed__1); -l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1(); -lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__1); -l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2(); -lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_36__expandNatValuePattern___spec__1___closed__2); -l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_37__traceStep___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_38__traceState___closed__1 = _init_l___private_Lean_Meta_Match_Match_38__traceState___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_38__traceState___closed__1); -l___private_Lean_Meta_Match_Match_38__traceState___closed__2 = _init_l___private_Lean_Meta_Match_Match_38__traceState___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_38__traceState___closed__2); -l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__1); -l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__2); -l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3 = _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_39__throwNonSupported___lambda__1___closed__3); -l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1 = _init_l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_39__throwNonSupported___closed__1); +l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__3); +l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__4); +l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__5); +l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__6); +l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7 = _init_l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7(); +lean_mark_persistent(l_Lean_Meta_Match_processInaccessibleAsCtor___closed__7); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__1); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___spec__8___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processConstructor___closed__4); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__1); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__2 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__2(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__2); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__3); +l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4 = _init_l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4(); +lean_mark_persistent(l_List_filterMapMAux___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___spec__1___closed__4); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___lambda__1___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processNonVariable___closed__1); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__1); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___spec__6___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processValue___closed__3); +l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1 = _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1(); +lean_mark_persistent(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__1); +l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2 = _init_l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2(); +lean_mark_persistent(l_List_mapM___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___spec__8___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_processArrayLit___closed__4); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__1); +l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2 = _init_l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2(); +lean_mark_persistent(l_List_map___main___at___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_expandNatValuePattern___spec__1___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceStep___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_traceState___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___lambda__1___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_throwNonSupported___closed__1); l_Lean_Meta_Match_isCurrVarInductive___closed__1 = _init_l_Lean_Meta_Match_isCurrVarInductive___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_isCurrVarInductive___closed__1); -l___private_Lean_Meta_Match_Match_40__process___main___closed__1 = _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_40__process___main___closed__1); -l___private_Lean_Meta_Match_Match_40__process___main___closed__2 = _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_40__process___main___closed__2); -l___private_Lean_Meta_Match_Match_40__process___main___closed__3 = _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_40__process___main___closed__3); -l___private_Lean_Meta_Match_Match_40__process___main___closed__4 = _init_l___private_Lean_Meta_Match_Match_40__process___main___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_40__process___main___closed__4); -l_Lean_Meta_Match_Extension_State_inhabited___closed__1 = _init_l_Lean_Meta_Match_Extension_State_inhabited___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_Extension_State_inhabited___closed__1); -l_Lean_Meta_Match_Extension_State_inhabited___closed__2 = _init_l_Lean_Meta_Match_Extension_State_inhabited___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_Extension_State_inhabited___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_process___closed__4); +l_Lean_Meta_Match_Extension_State_map___default___closed__1 = _init_l_Lean_Meta_Match_Extension_State_map___default___closed__1(); +lean_mark_persistent(l_Lean_Meta_Match_Extension_State_map___default___closed__1); +l_Lean_Meta_Match_Extension_State_map___default___closed__2 = _init_l_Lean_Meta_Match_Extension_State_map___default___closed__2(); +lean_mark_persistent(l_Lean_Meta_Match_Extension_State_map___default___closed__2); +l_Lean_Meta_Match_Extension_State_map___default = _init_l_Lean_Meta_Match_Extension_State_map___default(); +lean_mark_persistent(l_Lean_Meta_Match_Extension_State_map___default); l_Lean_Meta_Match_Extension_State_inhabited = _init_l_Lean_Meta_Match_Extension_State_inhabited(); lean_mark_persistent(l_Lean_Meta_Match_Extension_State_inhabited); l_Lean_Meta_Match_Extension_mkExtension___closed__1 = _init_l_Lean_Meta_Match_Extension_mkExtension___closed__1(); @@ -28056,91 +33315,89 @@ if (lean_io_result_is_error(res)) return res; l_Lean_Meta_Match_Extension_extension = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_Meta_Match_Extension_extension); lean_dec_ref(res); -l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1 = _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__1); -l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2 = _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__2); -l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3 = _init_l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_41__getUElimPos_x3f___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_Match_getUElimPos_x3f___closed__3); l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__1); l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__2); l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__3); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__4); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__5); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__6 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__6(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__6); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__7); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__8); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__9 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__9(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__9); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__10); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__11); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__12 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__12(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__12); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__13); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__14); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__15 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__15(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__15); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__16); +l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17 = _init_l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__1___closed__17); l_Lean_Meta_Match_mkMatcher___lambda__2___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__1); l_Lean_Meta_Match_mkMatcher___lambda__2___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__2); l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__3); +l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__4); +l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__5); +l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6 = _init_l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6(); +lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__2___closed__6); l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__1); l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2(); lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__2); -l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__3); -l_Lean_Meta_Match_mkMatcher___lambda__3___closed__4 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__4(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__4); -l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__5); -l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6 = _init_l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__3___closed__6); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__1); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__2); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__3); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__4 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__4(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__4); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__5); -l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6 = _init_l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__4___closed__6); -l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__5___closed__1); -l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__5___closed__2); -l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__5___closed__3); -l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__6___closed__1); -l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__6___closed__2); -l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3 = _init_l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__6___closed__3); -l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1 = _init_l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__8___closed__1); -l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2 = _init_l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2(); -lean_mark_persistent(l_Lean_Meta_Match_mkMatcher___lambda__8___closed__2); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__1); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__2); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__3); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___lambda__2___closed__4); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__1); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__2); -l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3 = _init_l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3(); -lean_mark_persistent(l___private_Lean_Meta_Match_Match_42__updateAlts___main___closed__3); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__1); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__2); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__3); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__4 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__4(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__4); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__5); -l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6(); -lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__1___closed__6); -res = l___private_Lean_Meta_Match_Match_43__regTraceClasses(lean_io_mk_world()); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__2___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___lambda__3___closed__3); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__1); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__2); +l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3 = _init_l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3(); +lean_mark_persistent(l___private_Lean_Meta_Match_Match_0__Lean_Meta_updateAlts___closed__3); +l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__1); +l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__2); +l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__2___closed__3); +l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__1); +l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__2); +l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3 = _init_l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3(); +lean_mark_persistent(l_Lean_Meta_MatcherApp_addArg___lambda__4___closed__3); +res = l_Lean_Meta_initFn____x40_Lean_Meta_Match_Match___hyg_7756_(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/Meta/Match/MatchPatternAttr.c b/stage0/stdlib/Lean/Meta/Match/MatchPatternAttr.c index 6246eaaa72..e2baeb2def 100644 --- a/stage0/stdlib/Lean/Meta/Match/MatchPatternAttr.c +++ b/stage0/stdlib/Lean/Meta/Match/MatchPatternAttr.c @@ -13,21 +13,21 @@ #ifdef __cplusplus extern "C" { #endif +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2; lean_object* l_Lean_hasMatchPatternAttribute___boxed(lean_object*, lean_object*); -lean_object* l_Lean_mkMatchPatternAttr(lean_object*); -lean_object* l_Lean_mkMatchPatternAttr___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_mkMatchPatternAttr___closed__2; -lean_object* l_Lean_mkMatchPatternAttr___closed__1; +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3_(lean_object*); extern lean_object* l_Lean_TagAttribute_Inhabited___closed__1; lean_object* lean_name_mk_string(lean_object*, lean_object*); -lean_object* l_Lean_mkMatchPatternAttr___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_has_match_pattern_attribute(lean_object*, lean_object*); uint8_t l_Lean_TagAttribute_hasTag(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1; +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4; lean_object* l_Lean_registerTagAttribute(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_mkMatchPatternAttr___closed__3; -lean_object* l_Lean_mkMatchPatternAttr___closed__4; +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3; lean_object* l_Lean_matchPatternAttr; -lean_object* l_Lean_mkMatchPatternAttr___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) { +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____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; lean_object* x_7; @@ -38,7 +38,7 @@ lean_ctor_set(x_7, 1, x_5); return x_7; } } -static lean_object* _init_l_Lean_mkMatchPatternAttr___closed__1() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1() { _start: { lean_object* x_1; @@ -46,17 +46,17 @@ x_1 = lean_mk_string("matchPattern"); return x_1; } } -static lean_object* _init_l_Lean_mkMatchPatternAttr___closed__2() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2() { _start: { lean_object* x_1; lean_object* x_2; lean_object* x_3; x_1 = lean_box(0); -x_2 = l_Lean_mkMatchPatternAttr___closed__1; +x_2 = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1; x_3 = lean_name_mk_string(x_1, x_2); return x_3; } } -static lean_object* _init_l_Lean_mkMatchPatternAttr___closed__3() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3() { _start: { lean_object* x_1; @@ -64,30 +64,30 @@ x_1 = lean_mk_string("mark that a definition can be used in a pattern (remark: t return x_1; } } -static lean_object* _init_l_Lean_mkMatchPatternAttr___closed__4() { +static lean_object* _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4() { _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_mkMatchPatternAttr___lambda__1___boxed), 5, 0); +x_1 = lean_alloc_closure((void*)(l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____lambda__1___boxed), 5, 0); return x_1; } } -lean_object* l_Lean_mkMatchPatternAttr(lean_object* x_1) { +lean_object* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; -x_2 = l_Lean_mkMatchPatternAttr___closed__2; -x_3 = l_Lean_mkMatchPatternAttr___closed__3; -x_4 = l_Lean_mkMatchPatternAttr___closed__4; +x_2 = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2; +x_3 = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3; +x_4 = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4; x_5 = l_Lean_registerTagAttribute(x_2, x_3, x_4, x_1); return x_5; } } -lean_object* l_Lean_mkMatchPatternAttr___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* l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____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_mkMatchPatternAttr___lambda__1(x_1, x_2, x_3, x_4, x_5); +x_6 = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____lambda__1(x_1, x_2, x_3, x_4, x_5); lean_dec(x_4); lean_dec(x_3); lean_dec(x_2); @@ -128,15 +128,15 @@ lean_dec_ref(res); res = initialize_Lean_Attributes(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_mkMatchPatternAttr___closed__1 = _init_l_Lean_mkMatchPatternAttr___closed__1(); -lean_mark_persistent(l_Lean_mkMatchPatternAttr___closed__1); -l_Lean_mkMatchPatternAttr___closed__2 = _init_l_Lean_mkMatchPatternAttr___closed__2(); -lean_mark_persistent(l_Lean_mkMatchPatternAttr___closed__2); -l_Lean_mkMatchPatternAttr___closed__3 = _init_l_Lean_mkMatchPatternAttr___closed__3(); -lean_mark_persistent(l_Lean_mkMatchPatternAttr___closed__3); -l_Lean_mkMatchPatternAttr___closed__4 = _init_l_Lean_mkMatchPatternAttr___closed__4(); -lean_mark_persistent(l_Lean_mkMatchPatternAttr___closed__4); -res = l_Lean_mkMatchPatternAttr(lean_io_mk_world()); +l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1 = _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__1); +l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2 = _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__2); +l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3 = _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__3); +l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4 = _init_l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4(); +lean_mark_persistent(l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3____closed__4); +res = l_Lean_initFn____x40_Lean_Meta_Match_MatchPatternAttr___hyg_3_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; l_Lean_matchPatternAttr = lean_io_result_get_value(res); lean_mark_persistent(l_Lean_matchPatternAttr);