From 604a89c1859ecfe627dc99091cb76f689e7fb68a Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Sat, 20 Feb 2021 15:15:10 -0800 Subject: [PATCH] chore: update stage0 --- stage0/src/Init/Control.lean | 1 + stage0/src/Init/Control/Lawful.lean | 55 + stage0/src/Lean/Elab/Structure.lean | 3 + stage0/src/Lean/Elab/SyntheticMVars.lean | 218 +- stage0/src/Lean/Elab/Tactic/ElabTerm.lean | 2 +- stage0/src/Lean/Elab/Tactic/Rewrite.lean | 4 +- stage0/src/Lean/Elab/Tactic/Simp.lean | 18 +- stage0/stdlib/CMakeLists.txt | 2 +- stage0/stdlib/Init/Control.c | 6 +- stage0/stdlib/Init/Control/Lawful.c | 29 + stage0/stdlib/Lean/Elab/BuiltinNotation.c | 4 +- stage0/stdlib/Lean/Elab/Extra.c | 6 +- stage0/stdlib/Lean/Elab/Match.c | 4 +- stage0/stdlib/Lean/Elab/Structure.c | 251 +- stage0/stdlib/Lean/Elab/SyntheticMVars.c | 7088 +++++++++++---------- stage0/stdlib/Lean/Elab/Tactic/Rewrite.c | 73 +- stage0/stdlib/Lean/Elab/Tactic/Simp.c | 1020 +-- 17 files changed, 4364 insertions(+), 4420 deletions(-) create mode 100644 stage0/src/Init/Control/Lawful.lean create mode 100644 stage0/stdlib/Init/Control/Lawful.c diff --git a/stage0/src/Init/Control.lean b/stage0/src/Init/Control.lean index fbc11e2489..b597a13ada 100644 --- a/stage0/src/Init/Control.lean +++ b/stage0/src/Init/Control.lean @@ -11,3 +11,4 @@ import Init.Control.Id import Init.Control.Except import Init.Control.Reader import Init.Control.Option +import Init.Control.Lawful diff --git a/stage0/src/Init/Control/Lawful.lean b/stage0/src/Init/Control/Lawful.lean new file mode 100644 index 0000000000..5727347b3a --- /dev/null +++ b/stage0/src/Init/Control/Lawful.lean @@ -0,0 +1,55 @@ +/- +Copyright (c) 2021 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Sebastian Ullrich, Leonardo de Moura +-/ +prelude +import Init.SimpLemmas + +open Function + +class LawfulFunctor (f : Type u → Type v) [Functor f] : Prop where + map_const : (Functor.mapConst : α → f β → f α) = Functor.map ∘ const β + id_map (x : f α) : id <$> x = x + comp_map (g : α → β) (h : β → γ) (x : f α) : (h ∘ g) <$> x = h <$> g <$> x + +export LawfulFunctor (map_const id_map comp_map) + +attribute [simp] id_map + +class LawfulApplicative (f : Type u → Type v) [Applicative f] extends LawfulFunctor f : Prop where + seqLeft_eq (x : f α) (y : f β) : x <* y = const β <$> x <*> y + seqRight_eq (x : f α) (y : f β) : x *> y = const α id <$> x <*> y + pure_seq (g : α → β) (x : f α) : pure g <*> x = g <$> x + map_pure (g : α → β) (x : α) : g <$> (pure x : f α) = pure (g x) + seq_pure (g : f (α → β)) (x : α) : g <*> pure x = (fun h : α → β => h x) <$> g + seq_assoc (x : f α) (g : f (α → β)) (h : f (β → γ)) : h <*> (g <*> x) = (@comp α β γ <$> h) <*> g <*> x + +export LawfulApplicative (seqLeft_eq seqRight_eq pure_seq map_pure seq_pure seq_assoc) + +attribute [simp] map_pure seq_pure + +@[simp] theorem pure_id_seq [Applicative f] [LawfulApplicative f] (x : f α) : pure id <*> x = x := by + simp [pure_seq] + +class LawfulMonad (m : Type u → Type v) [Monad m] extends LawfulApplicative m : Prop where + bind_pure_comp (f : α → β) (x : m α) : x >>= pure ∘ f = f <$> x + bind_map (f : m (α → (β : Type u))) (x : m α) : f >>= (. <$> x) = f <*> x + pure_bind (x : α) (f : α → m β) : pure x >>= f = f x + bind_assoc (x : m α) (f : α → m β) (g : β → m γ) : x >>= f >>= g = x >>= fun x => f x >>= g + +export LawfulMonad (bind_pure_comp bind_map pure_bind bind_assoc) +attribute [simp] pure_bind bind_assoc + +@[simp] theorem bind_pure [Monad m] [LawfulMonad m] (x : m α) : x >>= pure = x := by + show x >>= pure ∘ id = x + rw [bind_pure_comp, id_map] + +theorem map_eq_pure_bind [Monad m] [LawfulMonad m] (f : α → β) (x : m α) : f <$> x = x >>= fun a => pure (f a) := by + rw [← bind_pure_comp] + +theorem bind_congr [Bind m] {x : m α} {f g : α → m β} (h : ∀ a, f a = g a) : x >>= f = x >>= g := by + simp [funext h] + +theorem map_congr [Functor m] {x : m α} {f g : α → β} (h : ∀ a, f a = g a) : (f <$> x : m β) = g <$> x := by + simp [funext h] diff --git a/stage0/src/Lean/Elab/Structure.lean b/stage0/src/Lean/Elab/Structure.lean index 979f957576..4ce8761636 100644 --- a/stage0/src/Lean/Elab/Structure.lean +++ b/stage0/src/Lean/Elab/Structure.lean @@ -457,6 +457,9 @@ private def addDefaults (lctx : LocalContext) (defaultAuxDecls : Array (Name × let localInsts ← getLocalInstances withLCtx lctx localInsts do defaultAuxDecls.forM fun (declName, type, value) => do + let value ← instantiateMVars value + if value.hasExprMVar then + throwError! "invalid default value for field, it contains metavariables{indentExpr value}" /- The identity function is used as "marker". -/ let value ← mkId value discard <| mkAuxDefinition declName type value (zeta := true) diff --git a/stage0/src/Lean/Elab/SyntheticMVars.lean b/stage0/src/Lean/Elab/SyntheticMVars.lean index 3d129dc64e..76d89af99b 100644 --- a/stage0/src/Lean/Elab/SyntheticMVars.lean +++ b/stage0/src/Lean/Elab/SyntheticMVars.lean @@ -11,24 +11,6 @@ namespace Lean.Elab.Term open Tactic (TacticM evalTactic getUnsolvedGoals) open Meta -def liftTacticElabM {α} (mvarId : MVarId) (x : TacticM α) : TermElabM α := - withMVarContext mvarId do - let s ← get - let savedSyntheticMVars := s.syntheticMVars - modify fun s => { s with syntheticMVars := [] } - try - x.run' { main := mvarId } { goals := [mvarId] } - finally - modify fun s => { s with syntheticMVars := savedSyntheticMVars } - -def runTactic (mvarId : MVarId) (tacticCode : Syntax) : TermElabM Unit := do - /- Recall, `tacticCode` is the whole `by ...` expression. - We store the `by` because in the future we want to save the initial state information at the `by` position. -/ - let code := tacticCode[1] - modifyThe Meta.State fun s => { s with mctx := s.mctx.instantiateMVarDeclMVars mvarId } - let remainingGoals ← withInfoHole mvarId do liftTacticElabM mvarId do evalTactic code; getUnsolvedGoals - unless remainingGoals.isEmpty do reportUnsolvedGoals remainingGoals - /-- Auxiliary function used to implement `synthesizeSyntheticMVars`. -/ private def resumeElabTerm (stx : Syntax) (expectedType? : Option Expr) (errToSorry := true) : TermElabM Expr := -- Remark: if `ctx.errToSorry` is already false, then we don't enable it. Recall tactics disable `errToSorry` @@ -106,47 +88,6 @@ private def synthesizePendingCoeInstMVar | Exception.error _ msg => throwTypeMismatchError errorMsgHeader? expectedType eType e f? msg | _ => unreachable! -/-- Try to synthesize the given pending synthetic metavariable. -/ -private def synthesizeSyntheticMVar (mvarSyntheticDecl : SyntheticMVarDecl) (postponeOnError : Bool) (runTactics : Bool) : TermElabM Bool := - withRef mvarSyntheticDecl.stx do - match mvarSyntheticDecl.kind with - | SyntheticMVarKind.typeClass => synthesizePendingInstMVar mvarSyntheticDecl.mvarId - | SyntheticMVarKind.coe header? eNew expectedType eType e f? => synthesizePendingCoeInstMVar mvarSyntheticDecl.mvarId header? eNew expectedType eType e f? - -- NOTE: actual processing at `synthesizeSyntheticMVarsAux` - | SyntheticMVarKind.postponed macroStack declName? => resumePostponed macroStack declName? mvarSyntheticDecl.stx mvarSyntheticDecl.mvarId postponeOnError - | SyntheticMVarKind.tactic declName? tacticCode => - withReader (fun ctx => { ctx with declName? := declName? }) do - if runTactics then - runTactic mvarSyntheticDecl.mvarId tacticCode - return true - else - return false - -/-- - Try to synthesize the current list of pending synthetic metavariables. - Return `true` if at least one of them was synthesized. -/ -private def synthesizeSyntheticMVarsStep (postponeOnError : Bool) (runTactics : Bool) : TermElabM Bool := do - let ctx ← read - traceAtCmdPos `Elab.resuming fun _ => - m!"resuming synthetic metavariables, mayPostpone: {ctx.mayPostpone}, postponeOnError: {postponeOnError}" - let s ← get - let syntheticMVars := s.syntheticMVars - let numSyntheticMVars := syntheticMVars.length - -- We reset `syntheticMVars` because new synthetic metavariables may be created by `synthesizeSyntheticMVar`. - modify fun s => { s with syntheticMVars := [] } - -- Recall that `syntheticMVars` is a list where head is the most recent pending synthetic metavariable. - -- We use `filterRevM` instead of `filterM` to make sure we process the synthetic metavariables using the order they were created. - -- It would not be incorrect to use `filterM`. - let remainingSyntheticMVars ← syntheticMVars.filterRevM fun mvarDecl => do - -- We use `traceM` because we want to make sure the metavar local context is used to trace the message - traceM `Elab.postpone (withMVarContext mvarDecl.mvarId do addMessageContext m!"resuming {mkMVar mvarDecl.mvarId}") - let succeeded ← synthesizeSyntheticMVar mvarDecl postponeOnError runTactics - trace[Elab.postpone]! if succeeded then fmt "succeeded" else fmt "not ready yet" - pure !succeeded - -- Merge new synthetic metavariables with `remainingSyntheticMVars`, i.e., metavariables that still couldn't be synthesized - modify fun s => { s with syntheticMVars := s.syntheticMVars ++ remainingSyntheticMVars } - return numSyntheticMVars != remainingSyntheticMVars.length - private def tryToSynthesizeUsingDefaultInstance (mvarId : MVarId) (defaultInstance : Name) : MetaM (Option (List SyntheticMVarDecl)) := commitWhenSome? do let constInfo ← getConstInfo defaultInstance @@ -237,51 +178,115 @@ private def getSomeSynthethicMVarsRef : TermElabM Syntax := do | some mvarDecl => return mvarDecl.stx | none => return Syntax.missing -/-- - Try to process pending synthetic metavariables. If `mayPostpone == false`, - then `syntheticMVars` is `[]` after executing this method. - It keeps executing `synthesizeSyntheticMVarsStep` while progress is being made. - If `mayPostpone == false`, then it applies default instances to `SyntheticMVarKind.typeClass` (if available) - metavariables that are still unresolved, and then tries to resolve metavariables - with `mayPostpone == false`. That is, we force them to produce error messages and/or commit to - a "best option". If, after that, we still haven't made progress, we report "stuck" errors. -/ -partial def synthesizeSyntheticMVars (mayPostpone := true) : TermElabM Unit := - let rec loop (u : Unit) : TermElabM Unit := do - let ref ← getSomeSynthethicMVarsRef - withRef ref <| withIncRecDepth do +mutual + + partial def liftTacticElabM {α} (mvarId : MVarId) (x : TacticM α) : TermElabM α := + withMVarContext mvarId do let s ← get - unless s.syntheticMVars.isEmpty do - if ← synthesizeSyntheticMVarsStep false false then - loop () - else if !mayPostpone then - /- Resume pending metavariables with "elaboration postponement" disabled. - We postpone elaboration errors in this step by setting `postponeOnError := true`. - Example: - ``` - #check let x := ⟨1, 2⟩; Prod.fst x - ``` - The term `⟨1, 2⟩` can't be elaborated because the expected type is not know. - The `x` at `Prod.fst x` is not elaborated because the type of `x` is not known. - When we execute the following step with "elaboration postponement" disabled, - the elaborator fails at `⟨1, 2⟩` and postpones it, and succeeds at `x` and learns - that its type must be of the form `Prod ?α ?β`. + let savedSyntheticMVars := s.syntheticMVars + modify fun s => { s with syntheticMVars := [] } + try + let a ← x.run' { main := mvarId } { goals := [mvarId] } + synthesizeSyntheticMVars (mayPostpone := false) + pure a + finally + modify fun s => { s with syntheticMVars := savedSyntheticMVars } - Recall that we postponed `x` at `Prod.fst x` because its type it is not known. - We the type of `x` may learn later its type and it may contain implicit and/or auto arguments. - By disabling postponement, we are essentially giving up the opportunity of learning `x`s type - and assume it does not have implict and/or auto arguments. -/ - if ← withoutPostponing (synthesizeSyntheticMVarsStep true false) then + partial def runTactic (mvarId : MVarId) (tacticCode : Syntax) : TermElabM Unit := do + /- Recall, `tacticCode` is the whole `by ...` expression. + We store the `by` because in the future we want to save the initial state information at the `by` position. -/ + let code := tacticCode[1] + modifyThe Meta.State fun s => { s with mctx := s.mctx.instantiateMVarDeclMVars mvarId } + let remainingGoals ← withInfoHole mvarId do liftTacticElabM mvarId do evalTactic code; getUnsolvedGoals + unless remainingGoals.isEmpty do reportUnsolvedGoals remainingGoals + + /-- Try to synthesize the given pending synthetic metavariable. -/ + private partial def synthesizeSyntheticMVar (mvarSyntheticDecl : SyntheticMVarDecl) (postponeOnError : Bool) (runTactics : Bool) : TermElabM Bool := + withRef mvarSyntheticDecl.stx do + match mvarSyntheticDecl.kind with + | SyntheticMVarKind.typeClass => synthesizePendingInstMVar mvarSyntheticDecl.mvarId + | SyntheticMVarKind.coe header? eNew expectedType eType e f? => synthesizePendingCoeInstMVar mvarSyntheticDecl.mvarId header? eNew expectedType eType e f? + -- NOTE: actual processing at `synthesizeSyntheticMVarsAux` + | SyntheticMVarKind.postponed macroStack declName? => resumePostponed macroStack declName? mvarSyntheticDecl.stx mvarSyntheticDecl.mvarId postponeOnError + | SyntheticMVarKind.tactic declName? tacticCode => + withReader (fun ctx => { ctx with declName? := declName? }) do + if runTactics then + runTactic mvarSyntheticDecl.mvarId tacticCode + return true + else + return false + /-- + Try to synthesize the current list of pending synthetic metavariables. + Return `true` if at least one of them was synthesized. -/ + private partial def synthesizeSyntheticMVarsStep (postponeOnError : Bool) (runTactics : Bool) : TermElabM Bool := do + let ctx ← read + traceAtCmdPos `Elab.resuming fun _ => + m!"resuming synthetic metavariables, mayPostpone: {ctx.mayPostpone}, postponeOnError: {postponeOnError}" + let s ← get + let syntheticMVars := s.syntheticMVars + let numSyntheticMVars := syntheticMVars.length + -- We reset `syntheticMVars` because new synthetic metavariables may be created by `synthesizeSyntheticMVar`. + modify fun s => { s with syntheticMVars := [] } + -- Recall that `syntheticMVars` is a list where head is the most recent pending synthetic metavariable. + -- We use `filterRevM` instead of `filterM` to make sure we process the synthetic metavariables using the order they were created. + -- It would not be incorrect to use `filterM`. + let remainingSyntheticMVars ← syntheticMVars.filterRevM fun mvarDecl => do + -- We use `traceM` because we want to make sure the metavar local context is used to trace the message + traceM `Elab.postpone (withMVarContext mvarDecl.mvarId do addMessageContext m!"resuming {mkMVar mvarDecl.mvarId}") + let succeeded ← synthesizeSyntheticMVar mvarDecl postponeOnError runTactics + trace[Elab.postpone]! if succeeded then fmt "succeeded" else fmt "not ready yet" + pure !succeeded + -- Merge new synthetic metavariables with `remainingSyntheticMVars`, i.e., metavariables that still couldn't be synthesized + modify fun s => { s with syntheticMVars := s.syntheticMVars ++ remainingSyntheticMVars } + return numSyntheticMVars != remainingSyntheticMVars.length + + /-- + Try to process pending synthetic metavariables. If `mayPostpone == false`, + then `syntheticMVars` is `[]` after executing this method. + + It keeps executing `synthesizeSyntheticMVarsStep` while progress is being made. + If `mayPostpone == false`, then it applies default instances to `SyntheticMVarKind.typeClass` (if available) + metavariables that are still unresolved, and then tries to resolve metavariables + with `mayPostpone == false`. That is, we force them to produce error messages and/or commit to + a "best option". If, after that, we still haven't made progress, we report "stuck" errors. -/ + partial def synthesizeSyntheticMVars (mayPostpone := true) : TermElabM Unit := + let rec loop (u : Unit) : TermElabM Unit := do + let ref ← getSomeSynthethicMVarsRef + withRef ref <| withIncRecDepth do + let s ← get + unless s.syntheticMVars.isEmpty do + if ← synthesizeSyntheticMVarsStep false false then loop () - else if ← synthesizeUsingDefault then - loop () - else if ← withoutPostponing (synthesizeSyntheticMVarsStep false false) then - loop () - else if ← synthesizeSyntheticMVarsStep false true then - loop () - else - reportStuckSyntheticMVars - loop () + else if !mayPostpone then + /- Resume pending metavariables with "elaboration postponement" disabled. + We postpone elaboration errors in this step by setting `postponeOnError := true`. + Example: + ``` + #check let x := ⟨1, 2⟩; Prod.fst x + ``` + The term `⟨1, 2⟩` can't be elaborated because the expected type is not know. + The `x` at `Prod.fst x` is not elaborated because the type of `x` is not known. + When we execute the following step with "elaboration postponement" disabled, + the elaborator fails at `⟨1, 2⟩` and postpones it, and succeeds at `x` and learns + that its type must be of the form `Prod ?α ?β`. + + Recall that we postponed `x` at `Prod.fst x` because its type it is not known. + We the type of `x` may learn later its type and it may contain implicit and/or auto arguments. + By disabling postponement, we are essentially giving up the opportunity of learning `x`s type + and assume it does not have implict and/or auto arguments. -/ + if ← withoutPostponing (synthesizeSyntheticMVarsStep true false) then + loop () + else if ← synthesizeUsingDefault then + loop () + else if ← withoutPostponing (synthesizeSyntheticMVarsStep false false) then + loop () + else if ← synthesizeSyntheticMVarsStep false true then + loop () + else + reportStuckSyntheticMVars + loop () +end def synthesizeSyntheticMVarsNoPostponing : TermElabM Unit := synthesizeSyntheticMVars (mayPostpone := false) @@ -296,11 +301,7 @@ def synthesizeSyntheticMVarsUsingDefault : TermElabM Unit := do synthesizeSyntheticMVars (mayPostpone := true) synthesizeUsingDefaultLoop -/-- - Execute `k`, and synthesize pending synthetic metavariables created while executing `k` are solved. - If `mayPostpone == false`, then all of them must be synthesized. - Remark: even if `mayPostpone == true`, the method still uses `synthesizeUsingDefault` -/ -partial def withSynthesize {α} (k : TermElabM α) (mayPostpone := false) : TermElabM α := do +private partial def withSynthesizeImp {α} (k : TermElabM α) (mayPostpone : Bool) : TermElabM α := do let s ← get let syntheticMVarsSaved := s.syntheticMVars modify fun s => { s with syntheticMVars := [] } @@ -313,6 +314,13 @@ partial def withSynthesize {α} (k : TermElabM α) (mayPostpone := false) : Term finally modify fun s => { s with syntheticMVars := s.syntheticMVars ++ syntheticMVarsSaved } +/-- + Execute `k`, and synthesize pending synthetic metavariables created while executing `k` are solved. + If `mayPostpone == false`, then all of them must be synthesized. + Remark: even if `mayPostpone == true`, the method still uses `synthesizeUsingDefault` -/ +@[inline] def withSynthesize [MonadFunctorT TermElabM m] [Monad m] (k : m α) (mayPostpone := false) : m α := + monadMap (m := TermElabM) (withSynthesizeImp . mayPostpone) k + /-- Elaborate `stx`, and make sure all pending synthetic metavariables created while elaborating `stx` are solved. -/ def elabTermAndSynthesize (stx : Syntax) (expectedType? : Option Expr) : TermElabM Expr := withRef stx do diff --git a/stage0/src/Lean/Elab/Tactic/ElabTerm.lean b/stage0/src/Lean/Elab/Tactic/ElabTerm.lean index e248cc89e8..30bacf1ef5 100644 --- a/stage0/src/Lean/Elab/Tactic/ElabTerm.lean +++ b/stage0/src/Lean/Elab/Tactic/ElabTerm.lean @@ -16,7 +16,7 @@ open Meta /- `elabTerm` for Tactics and basic tactics that use it. -/ def elabTerm (stx : Syntax) (expectedType? : Option Expr) (mayPostpone := false) : TacticM Expr := - withRef stx $ liftTermElabM $ Term.withoutErrToSorry do + withRef stx <| liftTermElabM <| Term.withoutErrToSorry do let e ← Term.elabTerm stx expectedType? Term.synthesizeSyntheticMVars mayPostpone instantiateMVars e diff --git a/stage0/src/Lean/Elab/Tactic/Rewrite.lean b/stage0/src/Lean/Elab/Tactic/Rewrite.lean index 8d0c2436eb..5b029f7db1 100644 --- a/stage0/src/Lean/Elab/Tactic/Rewrite.lean +++ b/stage0/src/Lean/Elab/Tactic/Rewrite.lean @@ -23,7 +23,7 @@ open Meta def rewriteTarget (stx : Syntax) (symm : Bool) (mode : TransparencyMode) : TacticM Unit := do let (g, gs) ← getMainGoal - withMVarContext g do + Term.withSynthesize <| withMVarContext g do let e ← elabTerm stx none true let target ← instantiateMVars (← getMVarDecl g).type let r ← rewrite g target e symm (mode := mode) @@ -32,7 +32,7 @@ def rewriteTarget (stx : Syntax) (symm : Bool) (mode : TransparencyMode) : Tacti def rewriteLocalDeclFVarId (stx : Syntax) (symm : Bool) (fvarId : FVarId) (mode : TransparencyMode) : TacticM Unit := do let (g, gs) ← getMainGoal - withMVarContext g do + Term.withSynthesize <| withMVarContext g do let e ← elabTerm stx none true let localDecl ← getLocalDecl fvarId let rwResult ← rewrite g localDecl.type e symm (mode := mode) diff --git a/stage0/src/Lean/Elab/Tactic/Simp.lean b/stage0/src/Lean/Elab/Tactic/Simp.lean index 66ed78dc85..3670ebdedc 100644 --- a/stage0/src/Lean/Elab/Tactic/Simp.lean +++ b/stage0/src/Lean/Elab/Tactic/Simp.lean @@ -94,21 +94,25 @@ private def elabSimpLemmas (stx : Syntax) (ctx : Simp.Context) : TacticM Simp.Co else arg[0][0].getKind == ``Parser.Tactic.simpPost match (← resolveSimpIdLemma? arg[1]) with - | some declName => - let info ← getConstInfo declName - if (← isProp info.type) then - lemmas ← lemmas.addConst declName post + | some e => + if e.isConst then + let declName := e.constName! + let info ← getConstInfo declName + if (← isProp info.type) then + lemmas ← lemmas.addConst declName post + else + toUnfold := toUnfold.insert declName else - toUnfold := toUnfold.insert declName + lemmas ← lemmas.add e post | _ => let arg ← elabTerm arg[1] none (mayPostpone := false) lemmas ← lemmas.add arg post return { ctx with simpLemmas := lemmas, toUnfold := toUnfold } where - resolveSimpIdLemma? (simpArgTerm : Syntax) : TacticM (Option Name) := do + resolveSimpIdLemma? (simpArgTerm : Syntax) : TacticM (Option Expr) := do if simpArgTerm.isIdent then try - return some (← resolveGlobalConstNoOverload simpArgTerm.getId) + Term.resolveId? simpArgTerm catch _ => return none else diff --git a/stage0/stdlib/CMakeLists.txt b/stage0/stdlib/CMakeLists.txt index 45d0a8e548..a8791f0c8c 100644 --- a/stage0/stdlib/CMakeLists.txt +++ b/stage0/stdlib/CMakeLists.txt @@ -1 +1 @@ -add_library (stage0 OBJECT ./Init.c ./Init/Classical.c ./Init/Coe.c ./Init/Control.c ./Init/Control/Basic.c ./Init/Control/EState.c ./Init/Control/Except.c ./Init/Control/Id.c ./Init/Control/Option.c ./Init/Control/Reader.c ./Init/Control/State.c ./Init/Control/StateRef.c ./Init/Core.c ./Init/Data.c ./Init/Data/Array.c ./Init/Data/Array/Basic.c ./Init/Data/Array/BinSearch.c ./Init/Data/Array/InsertionSort.c ./Init/Data/Array/QSort.c ./Init/Data/Array/Subarray.c ./Init/Data/Basic.c ./Init/Data/ByteArray.c ./Init/Data/ByteArray/Basic.c ./Init/Data/Char.c ./Init/Data/Char/Basic.c ./Init/Data/Fin.c ./Init/Data/Fin/Basic.c ./Init/Data/Float.c ./Init/Data/FloatArray.c ./Init/Data/FloatArray/Basic.c ./Init/Data/Format.c ./Init/Data/Format/Basic.c ./Init/Data/Format/Instances.c ./Init/Data/Format/Macro.c ./Init/Data/Hashable.c ./Init/Data/Int.c ./Init/Data/Int/Basic.c ./Init/Data/List.c ./Init/Data/List/Basic.c ./Init/Data/List/BasicAux.c ./Init/Data/List/Control.c ./Init/Data/Nat.c ./Init/Data/Nat/Basic.c ./Init/Data/Nat/Bitwise.c ./Init/Data/Nat/Control.c ./Init/Data/Nat/Div.c ./Init/Data/OfScientific.c ./Init/Data/Option.c ./Init/Data/Option/Basic.c ./Init/Data/Option/BasicAux.c ./Init/Data/Option/Instances.c ./Init/Data/Random.c ./Init/Data/Range.c ./Init/Data/Repr.c ./Init/Data/Stream.c ./Init/Data/String.c ./Init/Data/String/Basic.c ./Init/Data/String/Extra.c ./Init/Data/ToString.c ./Init/Data/ToString/Basic.c ./Init/Data/ToString/Macro.c ./Init/Data/UInt.c ./Init/Fix.c ./Init/Hints.c ./Init/Meta.c ./Init/Notation.c ./Init/NotationExtra.c ./Init/Prelude.c ./Init/SimpLemmas.c ./Init/SizeOf.c ./Init/System.c ./Init/System/FilePath.c ./Init/System/IO.c ./Init/System/IOError.c ./Init/System/Platform.c ./Init/System/ST.c ./Init/Util.c ./Init/WF.c ./Lean.c ./Lean/Attributes.c ./Lean/AuxRecursor.c ./Lean/Class.c ./Lean/Compiler.c ./Lean/Compiler/BorrowedAnnotation.c ./Lean/Compiler/ClosedTermCache.c ./Lean/Compiler/ConstFolding.c ./Lean/Compiler/ExportAttr.c ./Lean/Compiler/ExternAttr.c ./Lean/Compiler/IR.c ./Lean/Compiler/IR/Basic.c ./Lean/Compiler/IR/Borrow.c ./Lean/Compiler/IR/Boxing.c ./Lean/Compiler/IR/Checker.c ./Lean/Compiler/IR/CompilerM.c ./Lean/Compiler/IR/CtorLayout.c ./Lean/Compiler/IR/ElimDeadBranches.c ./Lean/Compiler/IR/ElimDeadVars.c ./Lean/Compiler/IR/EmitC.c ./Lean/Compiler/IR/EmitUtil.c ./Lean/Compiler/IR/ExpandResetReuse.c ./Lean/Compiler/IR/Format.c ./Lean/Compiler/IR/FreeVars.c ./Lean/Compiler/IR/LiveVars.c ./Lean/Compiler/IR/NormIds.c ./Lean/Compiler/IR/PushProj.c ./Lean/Compiler/IR/RC.c ./Lean/Compiler/IR/ResetReuse.c ./Lean/Compiler/IR/SimpCase.c ./Lean/Compiler/IR/Sorry.c ./Lean/Compiler/IR/UnboxResult.c ./Lean/Compiler/ImplementedByAttr.c ./Lean/Compiler/InitAttr.c ./Lean/Compiler/InlineAttrs.c ./Lean/Compiler/NameMangling.c ./Lean/Compiler/NeverExtractAttr.c ./Lean/Compiler/Specialize.c ./Lean/Compiler/Util.c ./Lean/CoreM.c ./Lean/Data.c ./Lean/Data/Format.c ./Lean/Data/Json.c ./Lean/Data/Json/Basic.c ./Lean/Data/Json/FromToJson.c ./Lean/Data/Json/Parser.c ./Lean/Data/Json/Printer.c ./Lean/Data/Json/Stream.c ./Lean/Data/JsonRpc.c ./Lean/Data/KVMap.c ./Lean/Data/LBool.c ./Lean/Data/LOption.c ./Lean/Data/Lsp.c ./Lean/Data/Lsp/Basic.c ./Lean/Data/Lsp/Capabilities.c ./Lean/Data/Lsp/Communication.c ./Lean/Data/Lsp/Diagnostics.c ./Lean/Data/Lsp/Extra.c ./Lean/Data/Lsp/InitShutdown.c ./Lean/Data/Lsp/Ipc.c ./Lean/Data/Lsp/LanguageFeatures.c ./Lean/Data/Lsp/TextSync.c ./Lean/Data/Lsp/Utf16.c ./Lean/Data/Lsp/Workspace.c ./Lean/Data/Name.c ./Lean/Data/NameTrie.c ./Lean/Data/Occurrences.c ./Lean/Data/OpenDecl.c ./Lean/Data/Options.c ./Lean/Data/Position.c ./Lean/Data/PrefixTree.c ./Lean/Data/SMap.c ./Lean/Data/Trie.c ./Lean/Declaration.c ./Lean/DeclarationRange.c ./Lean/DocString.c ./Lean/Elab.c ./Lean/Elab/App.c ./Lean/Elab/Attributes.c ./Lean/Elab/AutoBound.c ./Lean/Elab/Binders.c ./Lean/Elab/BuiltinNotation.c ./Lean/Elab/CollectFVars.c ./Lean/Elab/Command.c ./Lean/Elab/DeclModifiers.c ./Lean/Elab/DeclUtil.c ./Lean/Elab/Declaration.c ./Lean/Elab/DeclarationRange.c ./Lean/Elab/DefView.c ./Lean/Elab/Deriving.c ./Lean/Elab/Deriving/BEq.c ./Lean/Elab/Deriving/Basic.c ./Lean/Elab/Deriving/DecEq.c ./Lean/Elab/Deriving/FromToJson.c ./Lean/Elab/Deriving/Inhabited.c ./Lean/Elab/Deriving/Repr.c ./Lean/Elab/Deriving/SizeOf.c ./Lean/Elab/Deriving/Util.c ./Lean/Elab/Do.c ./Lean/Elab/Exception.c ./Lean/Elab/Extra.c ./Lean/Elab/Frontend.c ./Lean/Elab/Import.c ./Lean/Elab/Inductive.c ./Lean/Elab/InfoTree.c ./Lean/Elab/LetRec.c ./Lean/Elab/Level.c ./Lean/Elab/Log.c ./Lean/Elab/Match.c ./Lean/Elab/MutualDef.c ./Lean/Elab/PreDefinition.c ./Lean/Elab/PreDefinition/Basic.c ./Lean/Elab/PreDefinition/Main.c ./Lean/Elab/PreDefinition/MkInhabitant.c ./Lean/Elab/PreDefinition/Structural.c ./Lean/Elab/PreDefinition/WF.c ./Lean/Elab/Print.c ./Lean/Elab/Quotation.c ./Lean/Elab/Quotation/Util.c ./Lean/Elab/StructInst.c ./Lean/Elab/Structure.c ./Lean/Elab/Syntax.c ./Lean/Elab/SyntheticMVars.c ./Lean/Elab/Tactic.c ./Lean/Elab/Tactic/Basic.c ./Lean/Elab/Tactic/Binders.c ./Lean/Elab/Tactic/ElabTerm.c ./Lean/Elab/Tactic/Generalize.c ./Lean/Elab/Tactic/Induction.c ./Lean/Elab/Tactic/Injection.c ./Lean/Elab/Tactic/Location.c ./Lean/Elab/Tactic/Match.c ./Lean/Elab/Tactic/Rewrite.c ./Lean/Elab/Tactic/Simp.c ./Lean/Elab/Term.c ./Lean/Elab/Util.c ./Lean/Environment.c ./Lean/Eval.c ./Lean/Exception.c ./Lean/Expr.c ./Lean/HeadIndex.c ./Lean/Hygiene.c ./Lean/InternalExceptionId.c ./Lean/KeyedDeclsAttribute.c ./Lean/Level.c ./Lean/LocalContext.c ./Lean/Message.c ./Lean/Meta.c ./Lean/Meta/AbstractMVars.c ./Lean/Meta/AbstractNestedProofs.c ./Lean/Meta/AppBuilder.c ./Lean/Meta/Basic.c ./Lean/Meta/Check.c ./Lean/Meta/Closure.c ./Lean/Meta/Coe.c ./Lean/Meta/CollectMVars.c ./Lean/Meta/DiscrTree.c ./Lean/Meta/DiscrTreeTypes.c ./Lean/Meta/ExprDefEq.c ./Lean/Meta/ForEachExpr.c ./Lean/Meta/FunInfo.c ./Lean/Meta/GeneralizeTelescope.c ./Lean/Meta/GetConst.c ./Lean/Meta/Inductive.c ./Lean/Meta/InferType.c ./Lean/Meta/Instances.c ./Lean/Meta/KAbstract.c ./Lean/Meta/LevelDefEq.c ./Lean/Meta/Match.c ./Lean/Meta/Match/Basic.c ./Lean/Meta/Match/CaseArraySizes.c ./Lean/Meta/Match/CaseValues.c ./Lean/Meta/Match/MVarRenaming.c ./Lean/Meta/Match/Match.c ./Lean/Meta/Match/MatchPatternAttr.c ./Lean/Meta/Match/MatcherInfo.c ./Lean/Meta/MatchUtil.c ./Lean/Meta/Offset.c ./Lean/Meta/PPGoal.c ./Lean/Meta/RecursorInfo.c ./Lean/Meta/Reduce.c ./Lean/Meta/ReduceEval.c ./Lean/Meta/SizeOf.c ./Lean/Meta/SynthInstance.c ./Lean/Meta/Tactic.c ./Lean/Meta/Tactic/Apply.c ./Lean/Meta/Tactic/Assert.c ./Lean/Meta/Tactic/Assumption.c ./Lean/Meta/Tactic/Cases.c ./Lean/Meta/Tactic/Clear.c ./Lean/Meta/Tactic/Constructor.c ./Lean/Meta/Tactic/Delta.c ./Lean/Meta/Tactic/ElimInfo.c ./Lean/Meta/Tactic/FVarSubst.c ./Lean/Meta/Tactic/Generalize.c ./Lean/Meta/Tactic/Induction.c ./Lean/Meta/Tactic/Injection.c ./Lean/Meta/Tactic/Intro.c ./Lean/Meta/Tactic/Replace.c ./Lean/Meta/Tactic/Revert.c ./Lean/Meta/Tactic/Rewrite.c ./Lean/Meta/Tactic/Simp.c ./Lean/Meta/Tactic/Simp/CongrLemmas.c ./Lean/Meta/Tactic/Simp/Main.c ./Lean/Meta/Tactic/Simp/Rewrite.c ./Lean/Meta/Tactic/Simp/SimpLemmas.c ./Lean/Meta/Tactic/Simp/Types.c ./Lean/Meta/Tactic/Subst.c ./Lean/Meta/Tactic/Util.c ./Lean/Meta/Transform.c ./Lean/Meta/TransparencyMode.c ./Lean/Meta/UnificationHint.c ./Lean/Meta/WHNF.c ./Lean/MetavarContext.c ./Lean/Modifiers.c ./Lean/MonadEnv.c ./Lean/Parser.c ./Lean/Parser/Attr.c ./Lean/Parser/Basic.c ./Lean/Parser/Command.c ./Lean/Parser/Do.c ./Lean/Parser/Extension.c ./Lean/Parser/Extra.c ./Lean/Parser/Level.c ./Lean/Parser/Module.c ./Lean/Parser/StrInterpolation.c ./Lean/Parser/Syntax.c ./Lean/Parser/Tactic.c ./Lean/Parser/Term.c ./Lean/ParserCompiler.c ./Lean/ParserCompiler/Attribute.c ./Lean/PrettyPrinter.c ./Lean/PrettyPrinter/Basic.c ./Lean/PrettyPrinter/Delaborator.c ./Lean/PrettyPrinter/Delaborator/Basic.c ./Lean/PrettyPrinter/Delaborator/Builtins.c ./Lean/PrettyPrinter/Formatter.c ./Lean/PrettyPrinter/Parenthesizer.c ./Lean/ProjFns.c ./Lean/ReducibilityAttrs.c ./Lean/ResolveName.c ./Lean/Runtime.c ./Lean/ScopedEnvExtension.c ./Lean/Server.c ./Lean/Server/AsyncList.c ./Lean/Server/FileSource.c ./Lean/Server/FileWorker.c ./Lean/Server/InfoUtils.c ./Lean/Server/Snapshots.c ./Lean/Server/Utils.c ./Lean/Server/Watchdog.c ./Lean/Structure.c ./Lean/Syntax.c ./Lean/ToExpr.c ./Lean/Util.c ./Lean/Util/CollectFVars.c ./Lean/Util/CollectLevelParams.c ./Lean/Util/CollectMVars.c ./Lean/Util/Constructions.c ./Lean/Util/FindExpr.c ./Lean/Util/FindMVar.c ./Lean/Util/FoldConsts.c ./Lean/Util/ForEachExpr.c ./Lean/Util/MonadCache.c ./Lean/Util/OccursCheck.c ./Lean/Util/PPExt.c ./Lean/Util/Path.c ./Lean/Util/Profile.c ./Lean/Util/RecDepth.c ./Lean/Util/Recognizers.c ./Lean/Util/ReplaceExpr.c ./Lean/Util/ReplaceLevel.c ./Lean/Util/SCC.c ./Lean/Util/Sorry.c ./Lean/Util/Trace.c ./Leanpkg.c ./Leanpkg/Git.c ./Leanpkg/LeanVersion.c ./Leanpkg/Manifest.c ./Leanpkg/Proc.c ./Leanpkg/Resolve.c ./Leanpkg/Toml.c ./Std.c ./Std/Control/Lawful.c ./Std/Data.c ./Std/Data/AssocList.c ./Std/Data/BinomialHeap.c ./Std/Data/DList.c ./Std/Data/HashMap.c ./Std/Data/HashSet.c ./Std/Data/PersistentArray.c ./Std/Data/PersistentHashMap.c ./Std/Data/PersistentHashSet.c ./Std/Data/Queue.c ./Std/Data/RBMap.c ./Std/Data/RBTree.c ./Std/Data/Stack.c ./Std/ShareCommon.c ) +add_library (stage0 OBJECT ./Init.c ./Init/Classical.c ./Init/Coe.c ./Init/Control.c ./Init/Control/Basic.c ./Init/Control/EState.c ./Init/Control/Except.c ./Init/Control/Id.c ./Init/Control/Lawful.c ./Init/Control/Option.c ./Init/Control/Reader.c ./Init/Control/State.c ./Init/Control/StateRef.c ./Init/Core.c ./Init/Data.c ./Init/Data/Array.c ./Init/Data/Array/Basic.c ./Init/Data/Array/BinSearch.c ./Init/Data/Array/InsertionSort.c ./Init/Data/Array/QSort.c ./Init/Data/Array/Subarray.c ./Init/Data/Basic.c ./Init/Data/ByteArray.c ./Init/Data/ByteArray/Basic.c ./Init/Data/Char.c ./Init/Data/Char/Basic.c ./Init/Data/Fin.c ./Init/Data/Fin/Basic.c ./Init/Data/Float.c ./Init/Data/FloatArray.c ./Init/Data/FloatArray/Basic.c ./Init/Data/Format.c ./Init/Data/Format/Basic.c ./Init/Data/Format/Instances.c ./Init/Data/Format/Macro.c ./Init/Data/Hashable.c ./Init/Data/Int.c ./Init/Data/Int/Basic.c ./Init/Data/List.c ./Init/Data/List/Basic.c ./Init/Data/List/BasicAux.c ./Init/Data/List/Control.c ./Init/Data/Nat.c ./Init/Data/Nat/Basic.c ./Init/Data/Nat/Bitwise.c ./Init/Data/Nat/Control.c ./Init/Data/Nat/Div.c ./Init/Data/OfScientific.c ./Init/Data/Option.c ./Init/Data/Option/Basic.c ./Init/Data/Option/BasicAux.c ./Init/Data/Option/Instances.c ./Init/Data/Random.c ./Init/Data/Range.c ./Init/Data/Repr.c ./Init/Data/Stream.c ./Init/Data/String.c ./Init/Data/String/Basic.c ./Init/Data/String/Extra.c ./Init/Data/ToString.c ./Init/Data/ToString/Basic.c ./Init/Data/ToString/Macro.c ./Init/Data/UInt.c ./Init/Fix.c ./Init/Hints.c ./Init/Meta.c ./Init/Notation.c ./Init/NotationExtra.c ./Init/Prelude.c ./Init/SimpLemmas.c ./Init/SizeOf.c ./Init/System.c ./Init/System/FilePath.c ./Init/System/IO.c ./Init/System/IOError.c ./Init/System/Platform.c ./Init/System/ST.c ./Init/Util.c ./Init/WF.c ./Lean.c ./Lean/Attributes.c ./Lean/AuxRecursor.c ./Lean/Class.c ./Lean/Compiler.c ./Lean/Compiler/BorrowedAnnotation.c ./Lean/Compiler/ClosedTermCache.c ./Lean/Compiler/ConstFolding.c ./Lean/Compiler/ExportAttr.c ./Lean/Compiler/ExternAttr.c ./Lean/Compiler/IR.c ./Lean/Compiler/IR/Basic.c ./Lean/Compiler/IR/Borrow.c ./Lean/Compiler/IR/Boxing.c ./Lean/Compiler/IR/Checker.c ./Lean/Compiler/IR/CompilerM.c ./Lean/Compiler/IR/CtorLayout.c ./Lean/Compiler/IR/ElimDeadBranches.c ./Lean/Compiler/IR/ElimDeadVars.c ./Lean/Compiler/IR/EmitC.c ./Lean/Compiler/IR/EmitUtil.c ./Lean/Compiler/IR/ExpandResetReuse.c ./Lean/Compiler/IR/Format.c ./Lean/Compiler/IR/FreeVars.c ./Lean/Compiler/IR/LiveVars.c ./Lean/Compiler/IR/NormIds.c ./Lean/Compiler/IR/PushProj.c ./Lean/Compiler/IR/RC.c ./Lean/Compiler/IR/ResetReuse.c ./Lean/Compiler/IR/SimpCase.c ./Lean/Compiler/IR/Sorry.c ./Lean/Compiler/IR/UnboxResult.c ./Lean/Compiler/ImplementedByAttr.c ./Lean/Compiler/InitAttr.c ./Lean/Compiler/InlineAttrs.c ./Lean/Compiler/NameMangling.c ./Lean/Compiler/NeverExtractAttr.c ./Lean/Compiler/Specialize.c ./Lean/Compiler/Util.c ./Lean/CoreM.c ./Lean/Data.c ./Lean/Data/Format.c ./Lean/Data/Json.c ./Lean/Data/Json/Basic.c ./Lean/Data/Json/FromToJson.c ./Lean/Data/Json/Parser.c ./Lean/Data/Json/Printer.c ./Lean/Data/Json/Stream.c ./Lean/Data/JsonRpc.c ./Lean/Data/KVMap.c ./Lean/Data/LBool.c ./Lean/Data/LOption.c ./Lean/Data/Lsp.c ./Lean/Data/Lsp/Basic.c ./Lean/Data/Lsp/Capabilities.c ./Lean/Data/Lsp/Communication.c ./Lean/Data/Lsp/Diagnostics.c ./Lean/Data/Lsp/Extra.c ./Lean/Data/Lsp/InitShutdown.c ./Lean/Data/Lsp/Ipc.c ./Lean/Data/Lsp/LanguageFeatures.c ./Lean/Data/Lsp/TextSync.c ./Lean/Data/Lsp/Utf16.c ./Lean/Data/Lsp/Workspace.c ./Lean/Data/Name.c ./Lean/Data/NameTrie.c ./Lean/Data/Occurrences.c ./Lean/Data/OpenDecl.c ./Lean/Data/Options.c ./Lean/Data/Position.c ./Lean/Data/PrefixTree.c ./Lean/Data/SMap.c ./Lean/Data/Trie.c ./Lean/Declaration.c ./Lean/DeclarationRange.c ./Lean/DocString.c ./Lean/Elab.c ./Lean/Elab/App.c ./Lean/Elab/Attributes.c ./Lean/Elab/AutoBound.c ./Lean/Elab/Binders.c ./Lean/Elab/BuiltinNotation.c ./Lean/Elab/CollectFVars.c ./Lean/Elab/Command.c ./Lean/Elab/DeclModifiers.c ./Lean/Elab/DeclUtil.c ./Lean/Elab/Declaration.c ./Lean/Elab/DeclarationRange.c ./Lean/Elab/DefView.c ./Lean/Elab/Deriving.c ./Lean/Elab/Deriving/BEq.c ./Lean/Elab/Deriving/Basic.c ./Lean/Elab/Deriving/DecEq.c ./Lean/Elab/Deriving/FromToJson.c ./Lean/Elab/Deriving/Inhabited.c ./Lean/Elab/Deriving/Repr.c ./Lean/Elab/Deriving/SizeOf.c ./Lean/Elab/Deriving/Util.c ./Lean/Elab/Do.c ./Lean/Elab/Exception.c ./Lean/Elab/Extra.c ./Lean/Elab/Frontend.c ./Lean/Elab/Import.c ./Lean/Elab/Inductive.c ./Lean/Elab/InfoTree.c ./Lean/Elab/LetRec.c ./Lean/Elab/Level.c ./Lean/Elab/Log.c ./Lean/Elab/Match.c ./Lean/Elab/MutualDef.c ./Lean/Elab/PreDefinition.c ./Lean/Elab/PreDefinition/Basic.c ./Lean/Elab/PreDefinition/Main.c ./Lean/Elab/PreDefinition/MkInhabitant.c ./Lean/Elab/PreDefinition/Structural.c ./Lean/Elab/PreDefinition/WF.c ./Lean/Elab/Print.c ./Lean/Elab/Quotation.c ./Lean/Elab/Quotation/Util.c ./Lean/Elab/StructInst.c ./Lean/Elab/Structure.c ./Lean/Elab/Syntax.c ./Lean/Elab/SyntheticMVars.c ./Lean/Elab/Tactic.c ./Lean/Elab/Tactic/Basic.c ./Lean/Elab/Tactic/Binders.c ./Lean/Elab/Tactic/ElabTerm.c ./Lean/Elab/Tactic/Generalize.c ./Lean/Elab/Tactic/Induction.c ./Lean/Elab/Tactic/Injection.c ./Lean/Elab/Tactic/Location.c ./Lean/Elab/Tactic/Match.c ./Lean/Elab/Tactic/Rewrite.c ./Lean/Elab/Tactic/Simp.c ./Lean/Elab/Term.c ./Lean/Elab/Util.c ./Lean/Environment.c ./Lean/Eval.c ./Lean/Exception.c ./Lean/Expr.c ./Lean/HeadIndex.c ./Lean/Hygiene.c ./Lean/InternalExceptionId.c ./Lean/KeyedDeclsAttribute.c ./Lean/Level.c ./Lean/LocalContext.c ./Lean/Message.c ./Lean/Meta.c ./Lean/Meta/AbstractMVars.c ./Lean/Meta/AbstractNestedProofs.c ./Lean/Meta/AppBuilder.c ./Lean/Meta/Basic.c ./Lean/Meta/Check.c ./Lean/Meta/Closure.c ./Lean/Meta/Coe.c ./Lean/Meta/CollectMVars.c ./Lean/Meta/DiscrTree.c ./Lean/Meta/DiscrTreeTypes.c ./Lean/Meta/ExprDefEq.c ./Lean/Meta/ForEachExpr.c ./Lean/Meta/FunInfo.c ./Lean/Meta/GeneralizeTelescope.c ./Lean/Meta/GetConst.c ./Lean/Meta/Inductive.c ./Lean/Meta/InferType.c ./Lean/Meta/Instances.c ./Lean/Meta/KAbstract.c ./Lean/Meta/LevelDefEq.c ./Lean/Meta/Match.c ./Lean/Meta/Match/Basic.c ./Lean/Meta/Match/CaseArraySizes.c ./Lean/Meta/Match/CaseValues.c ./Lean/Meta/Match/MVarRenaming.c ./Lean/Meta/Match/Match.c ./Lean/Meta/Match/MatchPatternAttr.c ./Lean/Meta/Match/MatcherInfo.c ./Lean/Meta/MatchUtil.c ./Lean/Meta/Offset.c ./Lean/Meta/PPGoal.c ./Lean/Meta/RecursorInfo.c ./Lean/Meta/Reduce.c ./Lean/Meta/ReduceEval.c ./Lean/Meta/SizeOf.c ./Lean/Meta/SynthInstance.c ./Lean/Meta/Tactic.c ./Lean/Meta/Tactic/Apply.c ./Lean/Meta/Tactic/Assert.c ./Lean/Meta/Tactic/Assumption.c ./Lean/Meta/Tactic/Cases.c ./Lean/Meta/Tactic/Clear.c ./Lean/Meta/Tactic/Constructor.c ./Lean/Meta/Tactic/Delta.c ./Lean/Meta/Tactic/ElimInfo.c ./Lean/Meta/Tactic/FVarSubst.c ./Lean/Meta/Tactic/Generalize.c ./Lean/Meta/Tactic/Induction.c ./Lean/Meta/Tactic/Injection.c ./Lean/Meta/Tactic/Intro.c ./Lean/Meta/Tactic/Replace.c ./Lean/Meta/Tactic/Revert.c ./Lean/Meta/Tactic/Rewrite.c ./Lean/Meta/Tactic/Simp.c ./Lean/Meta/Tactic/Simp/CongrLemmas.c ./Lean/Meta/Tactic/Simp/Main.c ./Lean/Meta/Tactic/Simp/Rewrite.c ./Lean/Meta/Tactic/Simp/SimpLemmas.c ./Lean/Meta/Tactic/Simp/Types.c ./Lean/Meta/Tactic/Subst.c ./Lean/Meta/Tactic/Util.c ./Lean/Meta/Transform.c ./Lean/Meta/TransparencyMode.c ./Lean/Meta/UnificationHint.c ./Lean/Meta/WHNF.c ./Lean/MetavarContext.c ./Lean/Modifiers.c ./Lean/MonadEnv.c ./Lean/Parser.c ./Lean/Parser/Attr.c ./Lean/Parser/Basic.c ./Lean/Parser/Command.c ./Lean/Parser/Do.c ./Lean/Parser/Extension.c ./Lean/Parser/Extra.c ./Lean/Parser/Level.c ./Lean/Parser/Module.c ./Lean/Parser/StrInterpolation.c ./Lean/Parser/Syntax.c ./Lean/Parser/Tactic.c ./Lean/Parser/Term.c ./Lean/ParserCompiler.c ./Lean/ParserCompiler/Attribute.c ./Lean/PrettyPrinter.c ./Lean/PrettyPrinter/Basic.c ./Lean/PrettyPrinter/Delaborator.c ./Lean/PrettyPrinter/Delaborator/Basic.c ./Lean/PrettyPrinter/Delaborator/Builtins.c ./Lean/PrettyPrinter/Formatter.c ./Lean/PrettyPrinter/Parenthesizer.c ./Lean/ProjFns.c ./Lean/ReducibilityAttrs.c ./Lean/ResolveName.c ./Lean/Runtime.c ./Lean/ScopedEnvExtension.c ./Lean/Server.c ./Lean/Server/AsyncList.c ./Lean/Server/FileSource.c ./Lean/Server/FileWorker.c ./Lean/Server/InfoUtils.c ./Lean/Server/Snapshots.c ./Lean/Server/Utils.c ./Lean/Server/Watchdog.c ./Lean/Structure.c ./Lean/Syntax.c ./Lean/ToExpr.c ./Lean/Util.c ./Lean/Util/CollectFVars.c ./Lean/Util/CollectLevelParams.c ./Lean/Util/CollectMVars.c ./Lean/Util/Constructions.c ./Lean/Util/FindExpr.c ./Lean/Util/FindMVar.c ./Lean/Util/FoldConsts.c ./Lean/Util/ForEachExpr.c ./Lean/Util/MonadCache.c ./Lean/Util/OccursCheck.c ./Lean/Util/PPExt.c ./Lean/Util/Path.c ./Lean/Util/Profile.c ./Lean/Util/RecDepth.c ./Lean/Util/Recognizers.c ./Lean/Util/ReplaceExpr.c ./Lean/Util/ReplaceLevel.c ./Lean/Util/SCC.c ./Lean/Util/Sorry.c ./Lean/Util/Trace.c ./Leanpkg.c ./Leanpkg/Git.c ./Leanpkg/LeanVersion.c ./Leanpkg/Manifest.c ./Leanpkg/Proc.c ./Leanpkg/Resolve.c ./Leanpkg/Toml.c ./Std.c ./Std/Control/Lawful.c ./Std/Data.c ./Std/Data/AssocList.c ./Std/Data/BinomialHeap.c ./Std/Data/DList.c ./Std/Data/HashMap.c ./Std/Data/HashSet.c ./Std/Data/PersistentArray.c ./Std/Data/PersistentHashMap.c ./Std/Data/PersistentHashSet.c ./Std/Data/Queue.c ./Std/Data/RBMap.c ./Std/Data/RBTree.c ./Std/Data/Stack.c ./Std/ShareCommon.c ) diff --git a/stage0/stdlib/Init/Control.c b/stage0/stdlib/Init/Control.c index 118cef7ac7..caebc3cbdd 100644 --- a/stage0/stdlib/Init/Control.c +++ b/stage0/stdlib/Init/Control.c @@ -1,6 +1,6 @@ // Lean compiler output // Module: Init.Control -// Imports: Init.Control.Basic Init.Control.State Init.Control.StateRef Init.Control.Id Init.Control.Except Init.Control.Reader Init.Control.Option +// Imports: Init.Control.Basic Init.Control.State Init.Control.StateRef Init.Control.Id Init.Control.Except Init.Control.Reader Init.Control.Option Init.Control.Lawful #include #if defined(__clang__) #pragma clang diagnostic ignored "-Wunused-parameter" @@ -20,6 +20,7 @@ lean_object* initialize_Init_Control_Id(lean_object*); lean_object* initialize_Init_Control_Except(lean_object*); lean_object* initialize_Init_Control_Reader(lean_object*); lean_object* initialize_Init_Control_Option(lean_object*); +lean_object* initialize_Init_Control_Lawful(lean_object*); static bool _G_initialized = false; lean_object* initialize_Init_Control(lean_object* w) { lean_object * res; @@ -46,6 +47,9 @@ lean_dec_ref(res); res = initialize_Init_Control_Option(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); +res = initialize_Init_Control_Lawful(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Init/Control/Lawful.c b/stage0/stdlib/Init/Control/Lawful.c new file mode 100644 index 0000000000..4790d483fb --- /dev/null +++ b/stage0/stdlib/Init/Control/Lawful.c @@ -0,0 +1,29 @@ +// Lean compiler output +// Module: Init.Control.Lawful +// Imports: Init.SimpLemmas +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +lean_object* initialize_Init_SimpLemmas(lean_object*); +static bool _G_initialized = false; +lean_object* initialize_Init_Control_Lawful(lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_io_result_mk_ok(lean_box(0)); +_G_initialized = true; +res = initialize_Init_SimpLemmas(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return lean_io_result_mk_ok(lean_box(0)); +} +#ifdef __cplusplus +} +#endif diff --git a/stage0/stdlib/Lean/Elab/BuiltinNotation.c b/stage0/stdlib/Lean/Elab/BuiltinNotation.c index 65d4f84c9c..505ad991f1 100644 --- a/stage0/stdlib/Lean/Elab/BuiltinNotation.c +++ b/stage0/stdlib/Lean/Elab/BuiltinNotation.c @@ -407,6 +407,7 @@ extern lean_object* l_Lean_Parser_Tactic_case___closed__9; lean_object* l_Lean_Elab_Term_elabAnonymousCtor_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabStateRefT___lambda__1___boxed(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_23____closed__8; +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux___closed__37; lean_object* l___regBuiltin_Lean_Elab_Term_elabSubst(lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_expandCDot___boxed__const__1; @@ -435,7 +436,6 @@ extern lean_object* l_Lean_Parser_Term_borrowed___elambda__1___closed__2; lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabPanic___closed__2; -lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_BuiltinNotation_0__Lean_Elab_Term_elabParserMacroAux_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_expandUnreachable___rarg(lean_object*, lean_object*); lean_object* l_Lean_Meta_mkArrow(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -10605,7 +10605,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_101 = l_Lean_Elab_Term_withSynthesize___rarg(x_99, x_100, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_101 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_99, x_100, x_3, x_4, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_101) == 0) { lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; diff --git a/stage0/stdlib/Lean/Elab/Extra.c b/stage0/stdlib/Lean/Elab/Extra.c index 7260a74b54..cb4a45e21e 100644 --- a/stage0/stdlib/Lean/Elab/Extra.c +++ b/stage0/stdlib/Lean/Elab/Extra.c @@ -99,10 +99,10 @@ lean_object* l_Lean_Elab_Term_elabForIn___closed__6; lean_object* l_Lean_Elab_Term_elabBinRel_match__2___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_isTypeApp_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabTerm___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_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabForIn___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabForIn___closed__3; lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_myMacro____x40_Init_Notation___hyg_7052____closed__2; lean_object* l___regBuiltin_Lean_Elab_Term_elabBinRel(lean_object*); lean_object* l_Lean_Meta_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -588,7 +588,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_32 = l_Lean_Elab_Term_withSynthesize___rarg(x_31, x_27, x_3, x_4, x_5, x_6, x_7, x_8, x_23); +x_32 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_31, x_27, x_3, x_4, x_5, x_6, x_7, x_8, x_23); if (lean_obj_tag(x_32) == 0) { lean_object* x_33; lean_object* x_34; uint8_t x_35; @@ -1658,7 +1658,7 @@ lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); lean_inc(x_3); -x_213 = l_Lean_Elab_Term_withSynthesize___rarg(x_212, x_208, x_3, x_4, x_5, x_6, x_7, x_8, x_204); +x_213 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_212, x_208, x_3, x_4, x_5, x_6, x_7, x_8, x_204); if (lean_obj_tag(x_213) == 0) { lean_object* x_214; lean_object* x_215; lean_object* x_216; lean_object* x_217; lean_object* x_218; lean_object* x_219; diff --git a/stage0/stdlib/Lean/Elab/Match.c b/stage0/stdlib/Lean/Elab/Match.c index 7e18eee358..3bbb5db896 100644 --- a/stage0/stdlib/Lean/Elab/Match.c +++ b/stage0/stdlib/Lean/Elab/Match.c @@ -642,6 +642,7 @@ lean_object* l_Lean_getConstInfo___at_Lean_Elab_Term_CollectPatternVars_CtorApp_ lean_object* l_List_forIn_loop___at___private_Lean_Elab_Match_0__Lean_Elab_Term_elabMatchAux___spec__5___lambda__1___closed__1; extern lean_object* l___private_Lean_Hygiene_0__Lean_mkInaccessibleUserNameAux___closed__2; lean_object* l_Lean_LocalContext_addDecl(lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_ToDepElimPattern_main___closed__3; extern lean_object* l_Lean_Elab_Term_resolveId_x3f___closed__2; lean_object* l___private_Lean_Elab_Match_0__Lean_Elab_Term_CollectPatternVars_processVar___lambda__2___closed__2; @@ -679,7 +680,6 @@ lean_object* l___private_Lean_Elab_Match_0__Lean_Elab_Term_elabMatchCore(lean_ob lean_object* l_Array_mapSepElemsM___at_Lean_Elab_Term_CollectPatternVars_collect___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_mkForall(lean_object*, uint8_t, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at_Lean_Elab_Term_reportMatcherResultErrors___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_List_mapM___at___private_Lean_Elab_Match_0__Lean_Elab_Term_elabMatchAux___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Match_0__Lean_Elab_Term_CollectPatternVars_CtorApp_pushNewArg___closed__3; @@ -21390,7 +21390,7 @@ lean_inc(x_9); lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); -x_15 = l_Lean_Elab_Term_withSynthesize___rarg(x_13, x_14, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +x_15 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_13, x_14, x_6, x_7, x_8, x_9, x_10, x_11, x_12); 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; diff --git a/stage0/stdlib/Lean/Elab/Structure.c b/stage0/stdlib/Lean/Elab/Structure.c index 2624eaf223..fef8c8c2e3 100644 --- a/stage0/stdlib/Lean/Elab/Structure.c +++ b/stage0/stdlib/Lean/Elab/Structure.c @@ -250,6 +250,7 @@ lean_object* l_Lean_mkAppN(lean_object*, lean_object*); lean_object* l_Lean_Elab_elabModifiers___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalContext_setBinderInfo(lean_object*, lean_object*, uint8_t); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withFields___rarg___closed__8; +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlMUnsafe___at_Array_foldl___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at___private_Lean_Elab_Term_0__Lean_Elab_Term_applyAttributesCore___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_checkValidCtorModifier___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__12___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -316,6 +317,7 @@ lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_checkParentIsS lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withFields___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Command_elabStructure___spec__14(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__11___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +uint8_t l_Lean_Expr_hasExprMVar(lean_object*); lean_object* l_Lean_Elab_Term_getFVarLocalDecl_x21(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_replaceRef(lean_object*, lean_object*); lean_object* l_Array_forM___at_Lean_Elab_Term_collectUsedFVarsAtFVars___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -364,7 +366,7 @@ extern lean_object* l_Lean_Meta_mkProjection___lambda__1___closed__3; lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars_loop(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_collectLevelParamsInFVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_checkParentIsStructure___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_Structure_0__Lean_Elab_Command_addDefaults___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Command_runTermElabM___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_addInstance(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_expandDeclId___at_Lean_Elab_Command_elabStructure___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*); @@ -450,6 +452,7 @@ lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withParents(le lean_object* l_Lean_PersistentEnvExtension_addEntry___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabBinders___rarg___boxed(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_Elab_Structure_0__Lean_Elab_Command_containsFieldName(lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2; lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_collectLevelParamsInStructure___closed__1; lean_object* l_Lean_throwErrorAt___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_nullKind___closed__2; @@ -488,7 +491,7 @@ lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withFields___r lean_object* l_Lean_Elab_elabAttr___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_getResultUniverse___closed__2; lean_object* l_Lean_Elab_applyVisibility___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__13___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_Syntax_getSepArgs(lean_object*); uint8_t l_Lean_isAttribute(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_collectLevelParamsInFVars___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -607,7 +610,7 @@ lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withFields___r lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabFieldTypeValue___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_forM___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___lambda__8___closed__4; -lean_object* l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4561_(lean_object*); +lean_object* l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4627_(lean_object*); lean_object* l_Lean_Meta_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandFields___lambda__1___boxed(lean_object**); uint8_t l___private_Lean_Expr_0__Lean_beqBinderInfo____x40_Lean_Expr___hyg_206_(uint8_t, uint8_t); @@ -685,6 +688,7 @@ extern lean_object* l_Lean_Parser_Command_structImplicitBinder___elambda__1___cl lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___lambda__2___closed__1; lean_object* l_Array_foldlMUnsafe___at_Lean_Elab_Command_elabStructure___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___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___lambda__7___boxed(lean_object*, lean_object*); +lean_object* l_Lean_indentExpr(lean_object*); lean_object* l_Lean_Elab_Command_checkValidFieldModifier___lambda__4___closed__3; lean_object* l_Array_foldlMUnsafe___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_collectLevelParamsInFVars___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_getDeclarationSelectionRef(lean_object*); @@ -721,6 +725,7 @@ lean_object* l_Lean_Elab_Command_elabStructure___lambda__3___boxed(lean_object*, lean_object* l_Lean_Elab_Term_withAutoBoundImplicitLocal___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_elabModifiers___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__1___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__2; +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1; uint8_t l_Lean_isStructure(lean_object*, lean_object*); lean_object* l_Lean_Elab_applyVisibility___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandCtor___spec__13(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlMUnsafe___at_Lean_Elab_Command_elabStructure___spec__13(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -729,6 +734,7 @@ lean_object* l_Lean_throwError___at_Lean_Elab_Command_elabStructure___spec__8(le extern lean_object* l_Lean_Elab_checkNotAlreadyDeclared___rarg___lambda__1___closed__2; lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_withFields___rarg___closed__7; lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_levelMVarToParam___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_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_getBetterRef(lean_object*, lean_object*); lean_object* l_Array_foldlMUnsafe___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_expandFields___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___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___lambda__8___closed__5; @@ -14341,7 +14347,120 @@ x_14 = l_Array_foldlMUnsafe___at___private_Lean_Elab_Structure_0__Lean_Elab_Comm return x_14; } } -lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +x_12 = l_Lean_Meta_mkId(x_1, 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; uint8_t x_15; lean_object* x_16; +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +x_14 = lean_ctor_get(x_12, 1); +lean_inc(x_14); +lean_dec(x_12); +x_15 = 1; +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_2); +x_16 = l_Lean_Meta_mkAuxDefinition(x_2, x_3, x_13, x_15, x_15, x_7, x_8, x_9, x_10, x_14); +if (lean_obj_tag(x_16) == 0) +{ +lean_object* x_17; uint8_t x_18; lean_object* x_19; +x_17 = lean_ctor_get(x_16, 1); +lean_inc(x_17); +lean_dec(x_16); +x_18 = 0; +x_19 = l_Lean_setReducibilityStatus___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___spec__1(x_2, x_18, x_5, x_6, x_7, x_8, x_9, x_10, x_17); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +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_2); +x_20 = !lean_is_exclusive(x_16); +if (x_20 == 0) +{ +return x_16; +} +else +{ +lean_object* x_21; lean_object* x_22; lean_object* x_23; +x_21 = lean_ctor_get(x_16, 0); +x_22 = lean_ctor_get(x_16, 1); +lean_inc(x_22); +lean_inc(x_21); +lean_dec(x_16); +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +return x_23; +} +} +} +else +{ +uint8_t x_24; +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_3); +lean_dec(x_2); +x_24 = !lean_is_exclusive(x_12); +if (x_24 == 0) +{ +return x_12; +} +else +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; +x_25 = lean_ctor_get(x_12, 0); +x_26 = lean_ctor_get(x_12, 1); +lean_inc(x_26); +lean_inc(x_25); +lean_dec(x_12); +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; +} +} +} +} +static lean_object* _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("invalid default value for field, it contains metavariables"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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; lean_object* x_12; lean_object* x_13; @@ -14359,90 +14478,90 @@ lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); lean_inc(x_4); -x_13 = l_Lean_Meta_mkId(x_12, x_4, x_5, x_6, x_7, x_8); +x_13 = l_Lean_Meta_instantiateMVars(x_12, x_4, x_5, x_6, x_7, x_8); if (lean_obj_tag(x_13) == 0) { -lean_object* x_14; lean_object* x_15; uint8_t x_16; lean_object* x_17; +lean_object* x_14; lean_object* x_15; uint8_t x_16; x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); x_15 = lean_ctor_get(x_13, 1); lean_inc(x_15); lean_dec(x_13); -x_16 = 1; -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_10); -x_17 = l_Lean_Meta_mkAuxDefinition(x_10, x_11, x_14, x_16, x_16, x_4, x_5, x_6, x_7, x_15); -if (lean_obj_tag(x_17) == 0) +x_16 = l_Lean_Expr_hasExprMVar(x_14); +if (x_16 == 0) { -lean_object* x_18; uint8_t x_19; lean_object* x_20; -x_18 = lean_ctor_get(x_17, 1); -lean_inc(x_18); -lean_dec(x_17); -x_19 = 0; -x_20 = l_Lean_setReducibilityStatus___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___spec__1(x_10, x_19, x_2, x_3, x_4, x_5, x_6, x_7, x_18); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_20; +lean_object* x_17; lean_object* x_18; +x_17 = lean_box(0); +x_18 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1(x_14, x_10, x_11, x_17, x_2, x_3, x_4, x_5, x_6, x_7, x_15); +lean_dec(x_2); +return x_18; } else { -uint8_t x_21; +lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; uint8_t x_25; +lean_dec(x_11); lean_dec(x_10); +x_19 = l_Lean_indentExpr(x_14); +x_20 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2; +x_21 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_21, 0, x_20); +lean_ctor_set(x_21, 1, x_19); +x_22 = l_Lean_KernelException_toMessageData___closed__15; +x_23 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_23, 0, x_21); +lean_ctor_set(x_23, 1, x_22); +x_24 = l_Lean_throwError___at___private_Lean_Elab_Term_0__Lean_Elab_Term_applyAttributesCore___spec__1(x_23, x_2, x_3, x_4, x_5, x_6, x_7, x_15); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -x_21 = !lean_is_exclusive(x_17); -if (x_21 == 0) +x_25 = !lean_is_exclusive(x_24); +if (x_25 == 0) { -return x_17; -} -else -{ -lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_22 = lean_ctor_get(x_17, 0); -x_23 = lean_ctor_get(x_17, 1); -lean_inc(x_23); -lean_inc(x_22); -lean_dec(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); return x_24; } +else +{ +lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_26 = lean_ctor_get(x_24, 0); +x_27 = lean_ctor_get(x_24, 1); +lean_inc(x_27); +lean_inc(x_26); +lean_dec(x_24); +x_28 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_28, 0, x_26); +lean_ctor_set(x_28, 1, x_27); +return x_28; +} } } else { -uint8_t x_25; +uint8_t x_29; lean_dec(x_11); lean_dec(x_10); lean_dec(x_7); lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); -x_25 = !lean_is_exclusive(x_13); -if (x_25 == 0) +lean_dec(x_2); +x_29 = !lean_is_exclusive(x_13); +if (x_29 == 0) { return x_13; } else { -lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_26 = lean_ctor_get(x_13, 0); -x_27 = lean_ctor_get(x_13, 1); -lean_inc(x_27); -lean_inc(x_26); +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_13, 0); +x_31 = lean_ctor_get(x_13, 1); +lean_inc(x_31); +lean_inc(x_30); lean_dec(x_13); -x_28 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_28, 0, x_26); -lean_ctor_set(x_28, 1, x_27); -return x_28; +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } @@ -14451,7 +14570,7 @@ static lean_object* _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_a _start: { lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1___boxed), 8, 0); +x_1 = lean_alloc_closure((void*)(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___boxed), 8, 0); return x_1; } } @@ -14528,13 +14647,23 @@ lean_dec(x_2); return x_12; } } -lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { +_start: +{ +lean_object* x_12; +x_12 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_12; +} +} +lean_object* l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___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_9; -x_9 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_9 = l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); lean_dec(x_3); -lean_dec(x_2); return x_9; } } @@ -19533,7 +19662,7 @@ lean_dec(x_8); return x_15; } } -lean_object* l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4561_(lean_object* x_1) { +lean_object* l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4627_(lean_object* x_1) { _start: { lean_object* x_2; lean_object* x_3; @@ -19737,6 +19866,10 @@ l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__1 = _init_ lean_mark_persistent(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__1); l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__2 = _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__2(); lean_mark_persistent(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_mkCtor___closed__2); +l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1 = _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1(); +lean_mark_persistent(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__1); +l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2 = _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2(); +lean_mark_persistent(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___lambda__2___closed__2); l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___closed__1 = _init_l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___closed__1(); lean_mark_persistent(l___private_Lean_Elab_Structure_0__Lean_Elab_Command_addDefaults___closed__1); l_Array_mapMUnsafe_map___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___spec__10___closed__1 = _init_l_Array_mapMUnsafe_map___at___private_Lean_Elab_Structure_0__Lean_Elab_Command_elabStructureView___spec__10___closed__1(); @@ -19777,7 +19910,7 @@ l_Lean_Elab_expandDeclId___at_Lean_Elab_Command_elabStructure___spec__4___closed lean_mark_persistent(l_Lean_Elab_expandDeclId___at_Lean_Elab_Command_elabStructure___spec__4___closed__1); l_Lean_Elab_Command_elabStructure___closed__1 = _init_l_Lean_Elab_Command_elabStructure___closed__1(); lean_mark_persistent(l_Lean_Elab_Command_elabStructure___closed__1); -res = l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4561_(lean_io_mk_world()); +res = l_Lean_Elab_Command_initFn____x40_Lean_Elab_Structure___hyg_4627_(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); return lean_io_result_mk_ok(lean_box(0)); diff --git a/stage0/stdlib/Lean/Elab/SyntheticMVars.c b/stage0/stdlib/Lean/Elab/SyntheticMVars.c index 8abbd7138e..acf301191c 100644 --- a/stage0/stdlib/Lean/Elab/SyntheticMVars.c +++ b/stage0/stdlib/Lean/Elab/SyntheticMVars.c @@ -30,7 +30,6 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostpo lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances_match__1(lean_object*); lean_object* l_Lean_Meta_withMVarContext___at_Lean_Meta_admit___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_stringToMessageData(lean_object*); -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___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* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefaultPrio_visit_match__1(lean_object*); lean_object* l_Lean_Elab_Term_mkFreshLevelMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -54,7 +53,6 @@ lean_object* l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at_Lean_Met lean_object* l_Lean_mkMVar(lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefaultPrio___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg(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_Elab_Term_liftTacticElabM___spec__1(lean_object*); lean_object* l_Lean_Elab_Term_elabTermAndSynthesize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumeElabTerm(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_checkTraceOption(lean_object*, lean_object*); @@ -65,15 +63,18 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUs lean_object* l_List_append___rarg(lean_object*, lean_object*); extern lean_object* l_Std_PersistentArray_empty___closed__1; lean_object* l_Lean_Elab_Tactic_evalTactic(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_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefaultPrio(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_getMVarDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___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_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_isClass_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_bind___at_Lean_Meta_instMonadLCtxMetaM___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_getDefaultInstancesPriorities___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault___spec__1___rarg___boxed(lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_withSynthesize___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__2; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__1; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault_match__1(lean_object*); @@ -82,14 +83,17 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePe lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__1___closed__2; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances_match__4(lean_object*); +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_instReprBool___closed__2; lean_object* l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5; lean_object* lean_nat_add(lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_withSynthesize___rarg___lambda__1(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_ensureHasType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__2___closed__1; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp(lean_object*); extern lean_object* l_instReprBool___closed__4; lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__2; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefaultLoop(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -98,7 +102,6 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostpo lean_object* l_Lean_mkAppN(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar_match__1(lean_object*); lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5; -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___boxed(lean_object*); lean_object* l_Lean_ConstantInfo_levelParams(lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(lean_object*, lean_object*, lean_object*); @@ -129,6 +132,8 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckS lean_object* l_Lean_Meta_expandCoe(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___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_Elab_Term_elabTerm(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp_match__1(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___lambda__1___boxed(lean_object*); lean_object* l_Lean_Elab_log___at___private_Lean_Elab_Term_0__Lean_Elab_Term_exceptionToSorry___spec__3(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar_match__1___rarg(lean_object*, lean_object*, lean_object*); @@ -166,6 +171,7 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSy lean_object* l_Lean_throwError___at___private_Lean_Elab_Term_0__Lean_Elab_Term_elabTermAux___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_KernelException_toMessageData___closed__15; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3(lean_object*); lean_object* l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_liftTacticElabM(lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__1___closed__1; @@ -177,9 +183,11 @@ lean_object* l_Lean_Meta_getMVarDecl___boxed(lean_object*, lean_object*, lean_ob lean_object* l_Lean_Elab_Term_runTactic(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed(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___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefaultPrio_visit_match__2___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___boxed(lean_object*); lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withMVarContextImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars_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_SimplePersistentEnvExtension_getState___rarg(lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2(lean_object*); lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8; lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__1___closed__3; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef_match__1(lean_object*); @@ -195,7 +203,6 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSy lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_Range_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault___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_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_List_find_x3f___rarg(lean_object*, lean_object*); extern lean_object* l_Lean_Elab_postponeExceptionId; @@ -207,7 +214,7 @@ lean_object* l___private_Lean_Elab_Term_0__Lean_Elab_Term_tryLiftAndCoe___lambda uint8_t lean_nat_dec_le(lean_object*, lean_object*); lean_object* l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___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_Lean_Elab_Term_synthesizeInstMVarCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize(lean_object*); +lean_object* l_Lean_Elab_Term_withSynthesize(lean_object*, lean_object*); lean_object* lean_panic_fn(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances_match__5___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2___boxed(lean_object*); @@ -216,6 +223,7 @@ lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_E lean_object* l_Lean_setEnv___at_Lean_Meta_orelse___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar(lean_object*, lean_object*, lean_object*, 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_Std_RBNode_forIn_visit___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___lambda__2___closed__2; @@ -227,7 +235,7 @@ lean_object* lean_st_ref_set(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object*, lean_object*, lean_object*, uint8_t); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___closed__1; lean_object* l_Lean_Meta_inferType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -251,16 +259,12 @@ lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars_loop___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2(lean_object*); lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_runTactic___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_withSynthesize_match__1___rarg(lean_object*, lean_object*, lean_object*); uint8_t l_Std_PersistentArray_anyM___at_Lean_MessageLog_hasErrors___spec__1(lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize_match__1(lean_object*, lean_object*); lean_object* l_Lean_Meta_getDefaultInstances___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_List_isEmpty___rarg(lean_object*); lean_object* l_List_lengthAux___rarg(lean_object*, lean_object*); -lean_object* l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_setMCtx(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_indentExpr(lean_object*); extern lean_object* l_Lean_Meta_SynthInstance_resume___closed__4; @@ -278,1907 +282,13 @@ lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostpo lean_object* l_Lean_Meta_getDefaultInstancesPriorities___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstances_match__4___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Elab_Term_withSynthesize___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_withSynthesize___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeUsingDefault_match__1___rarg(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__2___closed__1; lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar_match__1(lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; lean_object* x_11; -x_10 = lean_apply_2(x_2, x_3, x_4); -x_11 = l___private_Lean_Meta_Basic_0__Lean_Meta_withMVarContextImp___rarg(x_1, x_10, x_5, x_6, x_7, x_8, x_9); -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; -} -} -} -} -lean_object* l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg), 9, 0); -return x_2; -} -} -lean_object* l_Lean_Elab_Term_liftTacticElabM___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_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_24 = lean_ctor_get(x_3, 1); -x_25 = lean_st_ref_get(x_9, x_10); -x_26 = lean_ctor_get(x_25, 1); -lean_inc(x_26); -lean_dec(x_25); -x_27 = lean_st_ref_take(x_5, 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 = !lean_is_exclusive(x_28); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; -x_31 = lean_ctor_get(x_28, 1); -lean_dec(x_31); -x_32 = lean_box(0); -lean_ctor_set(x_28, 1, x_32); -x_33 = lean_st_ref_set(x_5, x_28, x_29); -x_34 = lean_ctor_get(x_33, 1); -lean_inc(x_34); -lean_dec(x_33); -lean_inc(x_1); -x_35 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_35, 0, x_1); -lean_ctor_set(x_35, 1, x_32); -x_36 = lean_st_ref_get(x_9, x_34); -x_37 = lean_ctor_get(x_36, 1); -lean_inc(x_37); -lean_dec(x_36); -x_38 = lean_st_mk_ref(x_35, x_37); -x_39 = lean_ctor_get(x_38, 0); -lean_inc(x_39); -x_40 = lean_ctor_get(x_38, 1); -lean_inc(x_40); -lean_dec(x_38); -lean_inc(x_9); -lean_inc(x_5); -lean_inc(x_39); -x_41 = lean_apply_9(x_2, x_1, x_39, x_4, x_5, x_6, x_7, x_8, x_9, x_40); -if (lean_obj_tag(x_41) == 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; lean_object* x_52; uint8_t x_53; -x_42 = lean_ctor_get(x_41, 0); -lean_inc(x_42); -x_43 = lean_ctor_get(x_41, 1); -lean_inc(x_43); -lean_dec(x_41); -x_44 = lean_st_ref_get(x_9, x_43); -x_45 = lean_ctor_get(x_44, 1); -lean_inc(x_45); -lean_dec(x_44); -x_46 = lean_st_ref_get(x_39, x_45); -lean_dec(x_39); -x_47 = lean_ctor_get(x_46, 1); -lean_inc(x_47); -lean_dec(x_46); -x_48 = lean_st_ref_get(x_9, x_47); -lean_dec(x_9); -x_49 = lean_ctor_get(x_48, 1); -lean_inc(x_49); -lean_dec(x_48); -x_50 = lean_st_ref_take(x_5, x_49); -x_51 = lean_ctor_get(x_50, 0); -lean_inc(x_51); -x_52 = lean_ctor_get(x_50, 1); -lean_inc(x_52); -lean_dec(x_50); -x_53 = !lean_is_exclusive(x_51); -if (x_53 == 0) -{ -lean_object* x_54; lean_object* x_55; uint8_t x_56; -x_54 = lean_ctor_get(x_51, 1); -lean_dec(x_54); -lean_inc(x_24); -lean_ctor_set(x_51, 1, x_24); -x_55 = lean_st_ref_set(x_5, x_51, x_52); -lean_dec(x_5); -x_56 = !lean_is_exclusive(x_55); -if (x_56 == 0) -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_57 = lean_ctor_get(x_55, 0); -lean_dec(x_57); -x_58 = lean_box(0); -x_59 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_59, 0, x_42); -lean_ctor_set(x_59, 1, x_58); -lean_ctor_set(x_55, 0, x_59); -x_11 = x_55; -goto block_23; -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; -x_60 = lean_ctor_get(x_55, 1); -lean_inc(x_60); -lean_dec(x_55); -x_61 = lean_box(0); -x_62 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_62, 0, x_42); -lean_ctor_set(x_62, 1, 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); -x_11 = x_63; -goto block_23; -} -} -else -{ -lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; lean_object* x_75; -x_64 = lean_ctor_get(x_51, 0); -x_65 = lean_ctor_get(x_51, 2); -x_66 = lean_ctor_get(x_51, 3); -x_67 = lean_ctor_get(x_51, 4); -x_68 = lean_ctor_get(x_51, 5); -lean_inc(x_68); -lean_inc(x_67); -lean_inc(x_66); -lean_inc(x_65); -lean_inc(x_64); -lean_dec(x_51); -lean_inc(x_24); -x_69 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_69, 0, x_64); -lean_ctor_set(x_69, 1, x_24); -lean_ctor_set(x_69, 2, x_65); -lean_ctor_set(x_69, 3, x_66); -lean_ctor_set(x_69, 4, x_67); -lean_ctor_set(x_69, 5, x_68); -x_70 = lean_st_ref_set(x_5, x_69, x_52); -lean_dec(x_5); -x_71 = lean_ctor_get(x_70, 1); -lean_inc(x_71); -if (lean_is_exclusive(x_70)) { - lean_ctor_release(x_70, 0); - lean_ctor_release(x_70, 1); - x_72 = x_70; -} else { - lean_dec_ref(x_70); - x_72 = lean_box(0); -} -x_73 = lean_box(0); -x_74 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_74, 0, x_42); -lean_ctor_set(x_74, 1, x_73); -if (lean_is_scalar(x_72)) { - x_75 = lean_alloc_ctor(0, 2, 0); -} else { - x_75 = x_72; -} -lean_ctor_set(x_75, 0, x_74); -lean_ctor_set(x_75, 1, x_71); -x_11 = x_75; -goto block_23; -} -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; uint8_t x_83; -lean_dec(x_39); -x_76 = lean_ctor_get(x_41, 0); -lean_inc(x_76); -x_77 = lean_ctor_get(x_41, 1); -lean_inc(x_77); -lean_dec(x_41); -x_78 = lean_st_ref_get(x_9, x_77); -lean_dec(x_9); -x_79 = lean_ctor_get(x_78, 1); -lean_inc(x_79); -lean_dec(x_78); -x_80 = lean_st_ref_take(x_5, x_79); -x_81 = lean_ctor_get(x_80, 0); -lean_inc(x_81); -x_82 = lean_ctor_get(x_80, 1); -lean_inc(x_82); -lean_dec(x_80); -x_83 = !lean_is_exclusive(x_81); -if (x_83 == 0) -{ -lean_object* x_84; lean_object* x_85; uint8_t x_86; -x_84 = lean_ctor_get(x_81, 1); -lean_dec(x_84); -lean_inc(x_24); -lean_ctor_set(x_81, 1, x_24); -x_85 = lean_st_ref_set(x_5, x_81, x_82); -lean_dec(x_5); -x_86 = !lean_is_exclusive(x_85); -if (x_86 == 0) -{ -lean_object* x_87; -x_87 = lean_ctor_get(x_85, 0); -lean_dec(x_87); -lean_ctor_set_tag(x_85, 1); -lean_ctor_set(x_85, 0, x_76); -x_11 = x_85; -goto block_23; -} -else -{ -lean_object* x_88; lean_object* x_89; -x_88 = lean_ctor_get(x_85, 1); -lean_inc(x_88); -lean_dec(x_85); -x_89 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_89, 0, x_76); -lean_ctor_set(x_89, 1, x_88); -x_11 = x_89; -goto block_23; -} -} -else -{ -lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; -x_90 = lean_ctor_get(x_81, 0); -x_91 = lean_ctor_get(x_81, 2); -x_92 = lean_ctor_get(x_81, 3); -x_93 = lean_ctor_get(x_81, 4); -x_94 = lean_ctor_get(x_81, 5); -lean_inc(x_94); -lean_inc(x_93); -lean_inc(x_92); -lean_inc(x_91); -lean_inc(x_90); -lean_dec(x_81); -lean_inc(x_24); -x_95 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_95, 0, x_90); -lean_ctor_set(x_95, 1, x_24); -lean_ctor_set(x_95, 2, x_91); -lean_ctor_set(x_95, 3, x_92); -lean_ctor_set(x_95, 4, x_93); -lean_ctor_set(x_95, 5, x_94); -x_96 = lean_st_ref_set(x_5, x_95, x_82); -lean_dec(x_5); -x_97 = lean_ctor_get(x_96, 1); -lean_inc(x_97); -if (lean_is_exclusive(x_96)) { - lean_ctor_release(x_96, 0); - lean_ctor_release(x_96, 1); - x_98 = x_96; -} else { - lean_dec_ref(x_96); - x_98 = lean_box(0); -} -if (lean_is_scalar(x_98)) { - x_99 = lean_alloc_ctor(1, 2, 0); -} else { - x_99 = x_98; - lean_ctor_set_tag(x_99, 1); -} -lean_ctor_set(x_99, 0, x_76); -lean_ctor_set(x_99, 1, x_97); -x_11 = x_99; -goto block_23; -} -} -} -else -{ -lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; lean_object* x_115; -x_100 = lean_ctor_get(x_28, 0); -x_101 = lean_ctor_get(x_28, 2); -x_102 = lean_ctor_get(x_28, 3); -x_103 = lean_ctor_get(x_28, 4); -x_104 = lean_ctor_get(x_28, 5); -lean_inc(x_104); -lean_inc(x_103); -lean_inc(x_102); -lean_inc(x_101); -lean_inc(x_100); -lean_dec(x_28); -x_105 = lean_box(0); -x_106 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_106, 0, x_100); -lean_ctor_set(x_106, 1, x_105); -lean_ctor_set(x_106, 2, x_101); -lean_ctor_set(x_106, 3, x_102); -lean_ctor_set(x_106, 4, x_103); -lean_ctor_set(x_106, 5, x_104); -x_107 = lean_st_ref_set(x_5, x_106, x_29); -x_108 = lean_ctor_get(x_107, 1); -lean_inc(x_108); -lean_dec(x_107); -lean_inc(x_1); -x_109 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_109, 0, x_1); -lean_ctor_set(x_109, 1, x_105); -x_110 = lean_st_ref_get(x_9, x_108); -x_111 = lean_ctor_get(x_110, 1); -lean_inc(x_111); -lean_dec(x_110); -x_112 = lean_st_mk_ref(x_109, x_111); -x_113 = lean_ctor_get(x_112, 0); -lean_inc(x_113); -x_114 = lean_ctor_get(x_112, 1); -lean_inc(x_114); -lean_dec(x_112); -lean_inc(x_9); -lean_inc(x_5); -lean_inc(x_113); -x_115 = lean_apply_9(x_2, x_1, x_113, x_4, x_5, x_6, x_7, x_8, x_9, x_114); -if (lean_obj_tag(x_115) == 0) -{ -lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; 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; -x_116 = lean_ctor_get(x_115, 0); -lean_inc(x_116); -x_117 = lean_ctor_get(x_115, 1); -lean_inc(x_117); -lean_dec(x_115); -x_118 = lean_st_ref_get(x_9, x_117); -x_119 = lean_ctor_get(x_118, 1); -lean_inc(x_119); -lean_dec(x_118); -x_120 = lean_st_ref_get(x_113, x_119); -lean_dec(x_113); -x_121 = lean_ctor_get(x_120, 1); -lean_inc(x_121); -lean_dec(x_120); -x_122 = lean_st_ref_get(x_9, x_121); -lean_dec(x_9); -x_123 = lean_ctor_get(x_122, 1); -lean_inc(x_123); -lean_dec(x_122); -x_124 = lean_st_ref_take(x_5, x_123); -x_125 = lean_ctor_get(x_124, 0); -lean_inc(x_125); -x_126 = lean_ctor_get(x_124, 1); -lean_inc(x_126); -lean_dec(x_124); -x_127 = lean_ctor_get(x_125, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_125, 2); -lean_inc(x_128); -x_129 = lean_ctor_get(x_125, 3); -lean_inc(x_129); -x_130 = lean_ctor_get(x_125, 4); -lean_inc(x_130); -x_131 = lean_ctor_get(x_125, 5); -lean_inc(x_131); -if (lean_is_exclusive(x_125)) { - lean_ctor_release(x_125, 0); - lean_ctor_release(x_125, 1); - lean_ctor_release(x_125, 2); - lean_ctor_release(x_125, 3); - lean_ctor_release(x_125, 4); - lean_ctor_release(x_125, 5); - x_132 = x_125; -} else { - lean_dec_ref(x_125); - x_132 = lean_box(0); -} -lean_inc(x_24); -if (lean_is_scalar(x_132)) { - x_133 = lean_alloc_ctor(0, 6, 0); -} else { - x_133 = x_132; -} -lean_ctor_set(x_133, 0, x_127); -lean_ctor_set(x_133, 1, x_24); -lean_ctor_set(x_133, 2, x_128); -lean_ctor_set(x_133, 3, x_129); -lean_ctor_set(x_133, 4, x_130); -lean_ctor_set(x_133, 5, x_131); -x_134 = lean_st_ref_set(x_5, x_133, x_126); -lean_dec(x_5); -x_135 = lean_ctor_get(x_134, 1); -lean_inc(x_135); -if (lean_is_exclusive(x_134)) { - lean_ctor_release(x_134, 0); - lean_ctor_release(x_134, 1); - x_136 = x_134; -} else { - lean_dec_ref(x_134); - x_136 = lean_box(0); -} -x_137 = lean_box(0); -x_138 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_138, 0, x_116); -lean_ctor_set(x_138, 1, x_137); -if (lean_is_scalar(x_136)) { - x_139 = lean_alloc_ctor(0, 2, 0); -} else { - x_139 = x_136; -} -lean_ctor_set(x_139, 0, x_138); -lean_ctor_set(x_139, 1, x_135); -x_11 = x_139; -goto block_23; -} -else -{ -lean_object* x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; lean_object* x_156; lean_object* x_157; -lean_dec(x_113); -x_140 = lean_ctor_get(x_115, 0); -lean_inc(x_140); -x_141 = lean_ctor_get(x_115, 1); -lean_inc(x_141); -lean_dec(x_115); -x_142 = lean_st_ref_get(x_9, x_141); -lean_dec(x_9); -x_143 = lean_ctor_get(x_142, 1); -lean_inc(x_143); -lean_dec(x_142); -x_144 = lean_st_ref_take(x_5, x_143); -x_145 = lean_ctor_get(x_144, 0); -lean_inc(x_145); -x_146 = lean_ctor_get(x_144, 1); -lean_inc(x_146); -lean_dec(x_144); -x_147 = lean_ctor_get(x_145, 0); -lean_inc(x_147); -x_148 = lean_ctor_get(x_145, 2); -lean_inc(x_148); -x_149 = lean_ctor_get(x_145, 3); -lean_inc(x_149); -x_150 = lean_ctor_get(x_145, 4); -lean_inc(x_150); -x_151 = lean_ctor_get(x_145, 5); -lean_inc(x_151); -if (lean_is_exclusive(x_145)) { - lean_ctor_release(x_145, 0); - lean_ctor_release(x_145, 1); - lean_ctor_release(x_145, 2); - lean_ctor_release(x_145, 3); - lean_ctor_release(x_145, 4); - lean_ctor_release(x_145, 5); - x_152 = x_145; -} else { - lean_dec_ref(x_145); - x_152 = lean_box(0); -} -lean_inc(x_24); -if (lean_is_scalar(x_152)) { - x_153 = lean_alloc_ctor(0, 6, 0); -} else { - x_153 = x_152; -} -lean_ctor_set(x_153, 0, x_147); -lean_ctor_set(x_153, 1, x_24); -lean_ctor_set(x_153, 2, x_148); -lean_ctor_set(x_153, 3, x_149); -lean_ctor_set(x_153, 4, x_150); -lean_ctor_set(x_153, 5, x_151); -x_154 = lean_st_ref_set(x_5, x_153, x_146); -lean_dec(x_5); -x_155 = lean_ctor_get(x_154, 1); -lean_inc(x_155); -if (lean_is_exclusive(x_154)) { - lean_ctor_release(x_154, 0); - lean_ctor_release(x_154, 1); - x_156 = x_154; -} else { - lean_dec_ref(x_154); - x_156 = lean_box(0); -} -if (lean_is_scalar(x_156)) { - x_157 = lean_alloc_ctor(1, 2, 0); -} else { - x_157 = x_156; - lean_ctor_set_tag(x_157, 1); -} -lean_ctor_set(x_157, 0, x_140); -lean_ctor_set(x_157, 1, x_155); -x_11 = x_157; -goto block_23; -} -} -block_23: -{ -if (lean_obj_tag(x_11) == 0) -{ -uint8_t x_12; -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -lean_dec(x_13); -lean_ctor_set(x_11, 0, x_14); -return x_11; -} -else -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_15 = lean_ctor_get(x_11, 0); -x_16 = lean_ctor_get(x_11, 1); -lean_inc(x_16); -lean_inc(x_15); -lean_dec(x_11); -x_17 = lean_ctor_get(x_15, 0); -lean_inc(x_17); -lean_dec(x_15); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_17); -lean_ctor_set(x_18, 1, x_16); -return x_18; -} -} -else -{ -uint8_t x_19; -x_19 = !lean_is_exclusive(x_11); -if (x_19 == 0) -{ -return x_11; -} -else -{ -lean_object* x_20; lean_object* x_21; lean_object* x_22; -x_20 = lean_ctor_get(x_11, 0); -x_21 = lean_ctor_get(x_11, 1); -lean_inc(x_21); -lean_inc(x_20); -lean_dec(x_11); -x_22 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_22, 0, x_20); -lean_ctor_set(x_22, 1, x_21); -return x_22; -} -} -} -} -} -lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; -lean_inc(x_1); -x_10 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1___boxed), 10, 2); -lean_closure_set(x_10, 0, x_1); -lean_closure_set(x_10, 1, x_2); -x_11 = l_Lean_Elab_Term_instMonadInfoTreeTermElabM___closed__1; -x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg), 9, 2); -lean_closure_set(x_12, 0, x_11); -lean_closure_set(x_12, 1, x_10); -x_13 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(x_1, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_13; -} -} -lean_object* l_Lean_Elab_Term_liftTacticElabM(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 0); -return x_2; -} -} -lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_3); -return x_11; -} -} -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___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) { -_start: -{ -lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; -x_7 = lean_st_ref_get(x_5, x_6); -x_8 = lean_ctor_get(x_7, 1); -lean_inc(x_8); -lean_dec(x_7); -x_9 = lean_st_ref_get(x_1, x_8); -x_10 = lean_ctor_get(x_9, 0); -lean_inc(x_10); -x_11 = lean_ctor_get(x_9, 1); -lean_inc(x_11); -lean_dec(x_9); -x_12 = lean_ctor_get(x_10, 5); -lean_inc(x_12); -lean_dec(x_10); -x_13 = lean_ctor_get(x_12, 1); -lean_inc(x_13); -lean_dec(x_12); -x_14 = lean_st_ref_get(x_5, x_11); -x_15 = lean_ctor_get(x_14, 1); -lean_inc(x_15); -lean_dec(x_14); -x_16 = lean_st_ref_take(x_1, x_15); -x_17 = lean_ctor_get(x_16, 0); -lean_inc(x_17); -x_18 = lean_ctor_get(x_17, 5); -lean_inc(x_18); -x_19 = lean_ctor_get(x_16, 1); -lean_inc(x_19); -lean_dec(x_16); -x_20 = !lean_is_exclusive(x_17); -if (x_20 == 0) -{ -lean_object* x_21; uint8_t x_22; -x_21 = lean_ctor_get(x_17, 5); -lean_dec(x_21); -x_22 = !lean_is_exclusive(x_18); -if (x_22 == 0) -{ -lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; -x_23 = lean_ctor_get(x_18, 1); -lean_dec(x_23); -x_24 = l_Std_PersistentArray_empty___closed__1; -lean_ctor_set(x_18, 1, x_24); -x_25 = lean_st_ref_set(x_1, x_17, x_19); -x_26 = !lean_is_exclusive(x_25); -if (x_26 == 0) -{ -lean_object* x_27; -x_27 = lean_ctor_get(x_25, 0); -lean_dec(x_27); -lean_ctor_set(x_25, 0, x_13); -return x_25; -} -else -{ -lean_object* x_28; lean_object* x_29; -x_28 = lean_ctor_get(x_25, 1); -lean_inc(x_28); -lean_dec(x_25); -x_29 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_29, 0, x_13); -lean_ctor_set(x_29, 1, x_28); -return x_29; -} -} -else -{ -uint8_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; -x_30 = lean_ctor_get_uint8(x_18, sizeof(void*)*2); -x_31 = lean_ctor_get(x_18, 0); -lean_inc(x_31); -lean_dec(x_18); -x_32 = l_Std_PersistentArray_empty___closed__1; -x_33 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_33, 0, x_31); -lean_ctor_set(x_33, 1, x_32); -lean_ctor_set_uint8(x_33, sizeof(void*)*2, x_30); -lean_ctor_set(x_17, 5, x_33); -x_34 = lean_st_ref_set(x_1, x_17, x_19); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -if (lean_is_exclusive(x_34)) { - lean_ctor_release(x_34, 0); - lean_ctor_release(x_34, 1); - x_36 = x_34; -} else { - lean_dec_ref(x_34); - x_36 = lean_box(0); -} -if (lean_is_scalar(x_36)) { - x_37 = lean_alloc_ctor(0, 2, 0); -} else { - x_37 = x_36; -} -lean_ctor_set(x_37, 0, x_13); -lean_ctor_set(x_37, 1, x_35); -return x_37; -} -} -else -{ -lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; -x_38 = lean_ctor_get(x_17, 0); -x_39 = lean_ctor_get(x_17, 1); -x_40 = lean_ctor_get(x_17, 2); -x_41 = lean_ctor_get(x_17, 3); -x_42 = lean_ctor_get(x_17, 4); -lean_inc(x_42); -lean_inc(x_41); -lean_inc(x_40); -lean_inc(x_39); -lean_inc(x_38); -lean_dec(x_17); -x_43 = lean_ctor_get_uint8(x_18, sizeof(void*)*2); -x_44 = lean_ctor_get(x_18, 0); -lean_inc(x_44); -if (lean_is_exclusive(x_18)) { - lean_ctor_release(x_18, 0); - lean_ctor_release(x_18, 1); - x_45 = x_18; -} else { - lean_dec_ref(x_18); - x_45 = lean_box(0); -} -x_46 = l_Std_PersistentArray_empty___closed__1; -if (lean_is_scalar(x_45)) { - x_47 = lean_alloc_ctor(0, 2, 1); -} else { - x_47 = x_45; -} -lean_ctor_set(x_47, 0, x_44); -lean_ctor_set(x_47, 1, x_46); -lean_ctor_set_uint8(x_47, sizeof(void*)*2, x_43); -x_48 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_48, 0, x_38); -lean_ctor_set(x_48, 1, x_39); -lean_ctor_set(x_48, 2, x_40); -lean_ctor_set(x_48, 3, x_41); -lean_ctor_set(x_48, 4, x_42); -lean_ctor_set(x_48, 5, x_47); -x_49 = lean_st_ref_set(x_1, x_48, x_19); -x_50 = lean_ctor_get(x_49, 1); -lean_inc(x_50); -if (lean_is_exclusive(x_49)) { - lean_ctor_release(x_49, 0); - lean_ctor_release(x_49, 1); - x_51 = x_49; -} else { - lean_dec_ref(x_49); - x_51 = lean_box(0); -} -if (lean_is_scalar(x_51)) { - x_52 = lean_alloc_ctor(0, 2, 0); -} else { - x_52 = x_51; -} -lean_ctor_set(x_52, 0, x_13); -lean_ctor_set(x_52, 1, x_50); -return x_52; -} -} -} -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg___boxed), 6, 0); -return x_2; -} -} -lean_object* l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___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_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_23 = lean_st_ref_get(x_8, x_9); -x_24 = lean_ctor_get(x_23, 1); -lean_inc(x_24); -lean_dec(x_23); -x_25 = lean_st_ref_get(x_4, x_24); -x_26 = lean_ctor_get(x_25, 0); -lean_inc(x_26); -x_27 = lean_ctor_get(x_26, 5); -lean_inc(x_27); -lean_dec(x_26); -x_28 = lean_ctor_get_uint8(x_27, sizeof(void*)*2); -lean_dec(x_27); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; -lean_dec(x_1); -x_29 = lean_ctor_get(x_25, 1); -lean_inc(x_29); -lean_dec(x_25); -x_30 = lean_apply_7(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_29); -return x_30; -} -else -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_31 = lean_ctor_get(x_25, 1); -lean_inc(x_31); -lean_dec(x_25); -x_32 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg(x_4, x_5, x_6, x_7, x_8, x_31); -x_33 = lean_ctor_get(x_32, 0); -lean_inc(x_33); -x_34 = lean_ctor_get(x_32, 1); -lean_inc(x_34); -lean_dec(x_32); -lean_inc(x_8); -lean_inc(x_4); -x_35 = lean_apply_7(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_34); -if (lean_obj_tag(x_35) == 0) -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; -x_36 = lean_ctor_get(x_35, 0); -lean_inc(x_36); -x_37 = lean_ctor_get(x_35, 1); -lean_inc(x_37); -lean_dec(x_35); -x_38 = lean_st_ref_get(x_8, x_37); -lean_dec(x_8); -x_39 = lean_ctor_get(x_38, 1); -lean_inc(x_39); -lean_dec(x_38); -x_40 = lean_st_ref_take(x_4, x_39); -x_41 = lean_ctor_get(x_40, 0); -lean_inc(x_41); -x_42 = lean_ctor_get(x_41, 5); -lean_inc(x_42); -x_43 = lean_ctor_get(x_40, 1); -lean_inc(x_43); -lean_dec(x_40); -x_44 = !lean_is_exclusive(x_41); -if (x_44 == 0) -{ -lean_object* x_45; uint8_t x_46; -x_45 = lean_ctor_get(x_41, 5); -lean_dec(x_45); -x_46 = !lean_is_exclusive(x_42); -if (x_46 == 0) -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; -x_47 = lean_ctor_get(x_42, 0); -x_48 = lean_ctor_get(x_42, 1); -x_49 = lean_ctor_get(x_48, 2); -lean_inc(x_49); -x_50 = lean_unsigned_to_nat(0u); -x_51 = lean_nat_dec_lt(x_50, x_49); -if (x_51 == 0) -{ -lean_object* x_52; uint8_t x_53; -lean_dec(x_49); -lean_dec(x_48); -lean_dec(x_1); -lean_ctor_set(x_42, 1, x_33); -x_52 = lean_st_ref_set(x_4, x_41, x_43); -lean_dec(x_4); -x_53 = !lean_is_exclusive(x_52); -if (x_53 == 0) -{ -lean_object* x_54; lean_object* x_55; lean_object* x_56; -x_54 = lean_ctor_get(x_52, 0); -lean_dec(x_54); -x_55 = lean_box(0); -x_56 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_56, 0, x_36); -lean_ctor_set(x_56, 1, x_55); -lean_ctor_set(x_52, 0, x_56); -x_10 = x_52; -goto block_22; -} -else -{ -lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; -x_57 = lean_ctor_get(x_52, 1); -lean_inc(x_57); -lean_dec(x_52); -x_58 = lean_box(0); -x_59 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_59, 0, x_36); -lean_ctor_set(x_59, 1, x_58); -x_60 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_60, 0, x_59); -lean_ctor_set(x_60, 1, x_57); -x_10 = x_60; -goto block_22; -} -} -else -{ -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_61 = lean_unsigned_to_nat(1u); -x_62 = lean_nat_sub(x_49, x_61); -lean_dec(x_49); -x_63 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_48, x_62); -lean_dec(x_62); -x_64 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_47, x_1, x_63); -lean_ctor_set(x_42, 1, x_33); -lean_ctor_set(x_42, 0, x_64); -x_65 = lean_st_ref_set(x_4, x_41, x_43); -lean_dec(x_4); -x_66 = !lean_is_exclusive(x_65); -if (x_66 == 0) -{ -lean_object* x_67; lean_object* x_68; lean_object* x_69; -x_67 = lean_ctor_get(x_65, 0); -lean_dec(x_67); -x_68 = lean_box(0); -x_69 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_69, 0, x_36); -lean_ctor_set(x_69, 1, x_68); -lean_ctor_set(x_65, 0, x_69); -x_10 = x_65; -goto block_22; -} -else -{ -lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; -x_70 = lean_ctor_get(x_65, 1); -lean_inc(x_70); -lean_dec(x_65); -x_71 = lean_box(0); -x_72 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_72, 0, x_36); -lean_ctor_set(x_72, 1, x_71); -x_73 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_73, 0, x_72); -lean_ctor_set(x_73, 1, x_70); -x_10 = x_73; -goto block_22; -} -} -} -else -{ -uint8_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; -x_74 = lean_ctor_get_uint8(x_42, sizeof(void*)*2); -x_75 = lean_ctor_get(x_42, 0); -x_76 = lean_ctor_get(x_42, 1); -lean_inc(x_76); -lean_inc(x_75); -lean_dec(x_42); -x_77 = lean_ctor_get(x_76, 2); -lean_inc(x_77); -x_78 = lean_unsigned_to_nat(0u); -x_79 = lean_nat_dec_lt(x_78, x_77); -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; -lean_dec(x_77); -lean_dec(x_76); -lean_dec(x_1); -x_80 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_80, 0, x_75); -lean_ctor_set(x_80, 1, x_33); -lean_ctor_set_uint8(x_80, sizeof(void*)*2, x_74); -lean_ctor_set(x_41, 5, x_80); -x_81 = lean_st_ref_set(x_4, x_41, x_43); -lean_dec(x_4); -x_82 = lean_ctor_get(x_81, 1); -lean_inc(x_82); -if (lean_is_exclusive(x_81)) { - lean_ctor_release(x_81, 0); - lean_ctor_release(x_81, 1); - x_83 = x_81; -} else { - lean_dec_ref(x_81); - x_83 = lean_box(0); -} -x_84 = lean_box(0); -x_85 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_85, 0, x_36); -lean_ctor_set(x_85, 1, x_84); -if (lean_is_scalar(x_83)) { - x_86 = lean_alloc_ctor(0, 2, 0); -} else { - x_86 = x_83; -} -lean_ctor_set(x_86, 0, x_85); -lean_ctor_set(x_86, 1, x_82); -x_10 = x_86; -goto block_22; -} -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; lean_object* x_95; lean_object* x_96; lean_object* x_97; -x_87 = lean_unsigned_to_nat(1u); -x_88 = lean_nat_sub(x_77, x_87); -lean_dec(x_77); -x_89 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_76, x_88); -lean_dec(x_88); -x_90 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_75, x_1, x_89); -x_91 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_91, 0, x_90); -lean_ctor_set(x_91, 1, x_33); -lean_ctor_set_uint8(x_91, sizeof(void*)*2, x_74); -lean_ctor_set(x_41, 5, x_91); -x_92 = lean_st_ref_set(x_4, x_41, x_43); -lean_dec(x_4); -x_93 = lean_ctor_get(x_92, 1); -lean_inc(x_93); -if (lean_is_exclusive(x_92)) { - lean_ctor_release(x_92, 0); - lean_ctor_release(x_92, 1); - x_94 = x_92; -} else { - lean_dec_ref(x_92); - x_94 = lean_box(0); -} -x_95 = lean_box(0); -x_96 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_96, 0, x_36); -lean_ctor_set(x_96, 1, x_95); -if (lean_is_scalar(x_94)) { - x_97 = lean_alloc_ctor(0, 2, 0); -} else { - x_97 = x_94; -} -lean_ctor_set(x_97, 0, x_96); -lean_ctor_set(x_97, 1, x_93); -x_10 = x_97; -goto block_22; -} -} -} -else -{ -lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; uint8_t x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; -x_98 = lean_ctor_get(x_41, 0); -x_99 = lean_ctor_get(x_41, 1); -x_100 = lean_ctor_get(x_41, 2); -x_101 = lean_ctor_get(x_41, 3); -x_102 = lean_ctor_get(x_41, 4); -lean_inc(x_102); -lean_inc(x_101); -lean_inc(x_100); -lean_inc(x_99); -lean_inc(x_98); -lean_dec(x_41); -x_103 = lean_ctor_get_uint8(x_42, sizeof(void*)*2); -x_104 = lean_ctor_get(x_42, 0); -lean_inc(x_104); -x_105 = lean_ctor_get(x_42, 1); -lean_inc(x_105); -if (lean_is_exclusive(x_42)) { - lean_ctor_release(x_42, 0); - lean_ctor_release(x_42, 1); - x_106 = x_42; -} else { - lean_dec_ref(x_42); - x_106 = lean_box(0); -} -x_107 = lean_ctor_get(x_105, 2); -lean_inc(x_107); -x_108 = lean_unsigned_to_nat(0u); -x_109 = lean_nat_dec_lt(x_108, x_107); -if (x_109 == 0) -{ -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_dec(x_107); -lean_dec(x_105); -lean_dec(x_1); -if (lean_is_scalar(x_106)) { - x_110 = lean_alloc_ctor(0, 2, 1); -} else { - x_110 = x_106; -} -lean_ctor_set(x_110, 0, x_104); -lean_ctor_set(x_110, 1, x_33); -lean_ctor_set_uint8(x_110, sizeof(void*)*2, x_103); -x_111 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_111, 0, x_98); -lean_ctor_set(x_111, 1, x_99); -lean_ctor_set(x_111, 2, x_100); -lean_ctor_set(x_111, 3, x_101); -lean_ctor_set(x_111, 4, x_102); -lean_ctor_set(x_111, 5, x_110); -x_112 = lean_st_ref_set(x_4, x_111, x_43); -lean_dec(x_4); -x_113 = lean_ctor_get(x_112, 1); -lean_inc(x_113); -if (lean_is_exclusive(x_112)) { - lean_ctor_release(x_112, 0); - lean_ctor_release(x_112, 1); - x_114 = x_112; -} else { - lean_dec_ref(x_112); - x_114 = lean_box(0); -} -x_115 = lean_box(0); -x_116 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_116, 0, x_36); -lean_ctor_set(x_116, 1, x_115); -if (lean_is_scalar(x_114)) { - x_117 = lean_alloc_ctor(0, 2, 0); -} else { - x_117 = x_114; -} -lean_ctor_set(x_117, 0, x_116); -lean_ctor_set(x_117, 1, x_113); -x_10 = x_117; -goto block_22; -} -else -{ -lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; -x_118 = lean_unsigned_to_nat(1u); -x_119 = lean_nat_sub(x_107, x_118); -lean_dec(x_107); -x_120 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_105, x_119); -lean_dec(x_119); -x_121 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_104, x_1, x_120); -if (lean_is_scalar(x_106)) { - x_122 = lean_alloc_ctor(0, 2, 1); -} else { - x_122 = x_106; -} -lean_ctor_set(x_122, 0, x_121); -lean_ctor_set(x_122, 1, x_33); -lean_ctor_set_uint8(x_122, sizeof(void*)*2, x_103); -x_123 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_123, 0, x_98); -lean_ctor_set(x_123, 1, x_99); -lean_ctor_set(x_123, 2, x_100); -lean_ctor_set(x_123, 3, x_101); -lean_ctor_set(x_123, 4, x_102); -lean_ctor_set(x_123, 5, x_122); -x_124 = lean_st_ref_set(x_4, x_123, x_43); -lean_dec(x_4); -x_125 = lean_ctor_get(x_124, 1); -lean_inc(x_125); -if (lean_is_exclusive(x_124)) { - lean_ctor_release(x_124, 0); - lean_ctor_release(x_124, 1); - x_126 = x_124; -} else { - lean_dec_ref(x_124); - x_126 = lean_box(0); -} -x_127 = lean_box(0); -x_128 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_128, 0, x_36); -lean_ctor_set(x_128, 1, x_127); -if (lean_is_scalar(x_126)) { - x_129 = lean_alloc_ctor(0, 2, 0); -} else { - x_129 = x_126; -} -lean_ctor_set(x_129, 0, x_128); -lean_ctor_set(x_129, 1, x_125); -x_10 = x_129; -goto block_22; -} -} -} -else -{ -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; uint8_t x_138; -x_130 = lean_ctor_get(x_35, 0); -lean_inc(x_130); -x_131 = lean_ctor_get(x_35, 1); -lean_inc(x_131); -lean_dec(x_35); -x_132 = lean_st_ref_get(x_8, x_131); -lean_dec(x_8); -x_133 = lean_ctor_get(x_132, 1); -lean_inc(x_133); -lean_dec(x_132); -x_134 = lean_st_ref_take(x_4, x_133); -x_135 = lean_ctor_get(x_134, 0); -lean_inc(x_135); -x_136 = lean_ctor_get(x_135, 5); -lean_inc(x_136); -x_137 = lean_ctor_get(x_134, 1); -lean_inc(x_137); -lean_dec(x_134); -x_138 = !lean_is_exclusive(x_135); -if (x_138 == 0) -{ -lean_object* x_139; uint8_t x_140; -x_139 = lean_ctor_get(x_135, 5); -lean_dec(x_139); -x_140 = !lean_is_exclusive(x_136); -if (x_140 == 0) -{ -lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; uint8_t x_145; -x_141 = lean_ctor_get(x_136, 0); -x_142 = lean_ctor_get(x_136, 1); -x_143 = lean_ctor_get(x_142, 2); -lean_inc(x_143); -x_144 = lean_unsigned_to_nat(0u); -x_145 = lean_nat_dec_lt(x_144, x_143); -if (x_145 == 0) -{ -lean_object* x_146; uint8_t x_147; -lean_dec(x_143); -lean_dec(x_142); -lean_dec(x_1); -lean_ctor_set(x_136, 1, x_33); -x_146 = lean_st_ref_set(x_4, x_135, x_137); -lean_dec(x_4); -x_147 = !lean_is_exclusive(x_146); -if (x_147 == 0) -{ -lean_object* x_148; -x_148 = lean_ctor_get(x_146, 0); -lean_dec(x_148); -lean_ctor_set_tag(x_146, 1); -lean_ctor_set(x_146, 0, x_130); -x_10 = x_146; -goto block_22; -} -else -{ -lean_object* x_149; lean_object* x_150; -x_149 = lean_ctor_get(x_146, 1); -lean_inc(x_149); -lean_dec(x_146); -x_150 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_150, 0, x_130); -lean_ctor_set(x_150, 1, x_149); -x_10 = x_150; -goto block_22; -} -} -else -{ -lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; uint8_t x_156; -x_151 = lean_unsigned_to_nat(1u); -x_152 = lean_nat_sub(x_143, x_151); -lean_dec(x_143); -x_153 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_142, x_152); -lean_dec(x_152); -x_154 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_141, x_1, x_153); -lean_ctor_set(x_136, 1, x_33); -lean_ctor_set(x_136, 0, x_154); -x_155 = lean_st_ref_set(x_4, x_135, x_137); -lean_dec(x_4); -x_156 = !lean_is_exclusive(x_155); -if (x_156 == 0) -{ -lean_object* x_157; -x_157 = lean_ctor_get(x_155, 0); -lean_dec(x_157); -lean_ctor_set_tag(x_155, 1); -lean_ctor_set(x_155, 0, x_130); -x_10 = x_155; -goto block_22; -} -else -{ -lean_object* x_158; lean_object* x_159; -x_158 = lean_ctor_get(x_155, 1); -lean_inc(x_158); -lean_dec(x_155); -x_159 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_159, 0, x_130); -lean_ctor_set(x_159, 1, x_158); -x_10 = x_159; -goto block_22; -} -} -} -else -{ -uint8_t x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165; -x_160 = lean_ctor_get_uint8(x_136, sizeof(void*)*2); -x_161 = lean_ctor_get(x_136, 0); -x_162 = lean_ctor_get(x_136, 1); -lean_inc(x_162); -lean_inc(x_161); -lean_dec(x_136); -x_163 = lean_ctor_get(x_162, 2); -lean_inc(x_163); -x_164 = lean_unsigned_to_nat(0u); -x_165 = lean_nat_dec_lt(x_164, x_163); -if (x_165 == 0) -{ -lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; -lean_dec(x_163); -lean_dec(x_162); -lean_dec(x_1); -x_166 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_166, 0, x_161); -lean_ctor_set(x_166, 1, x_33); -lean_ctor_set_uint8(x_166, sizeof(void*)*2, x_160); -lean_ctor_set(x_135, 5, x_166); -x_167 = lean_st_ref_set(x_4, x_135, x_137); -lean_dec(x_4); -x_168 = lean_ctor_get(x_167, 1); -lean_inc(x_168); -if (lean_is_exclusive(x_167)) { - lean_ctor_release(x_167, 0); - lean_ctor_release(x_167, 1); - x_169 = x_167; -} else { - lean_dec_ref(x_167); - 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_tag(x_170, 1); -} -lean_ctor_set(x_170, 0, x_130); -lean_ctor_set(x_170, 1, x_168); -x_10 = x_170; -goto block_22; -} -else -{ -lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; -x_171 = lean_unsigned_to_nat(1u); -x_172 = lean_nat_sub(x_163, x_171); -lean_dec(x_163); -x_173 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_162, x_172); -lean_dec(x_172); -x_174 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_161, x_1, x_173); -x_175 = lean_alloc_ctor(0, 2, 1); -lean_ctor_set(x_175, 0, x_174); -lean_ctor_set(x_175, 1, x_33); -lean_ctor_set_uint8(x_175, sizeof(void*)*2, x_160); -lean_ctor_set(x_135, 5, x_175); -x_176 = lean_st_ref_set(x_4, x_135, x_137); -lean_dec(x_4); -x_177 = lean_ctor_get(x_176, 1); -lean_inc(x_177); -if (lean_is_exclusive(x_176)) { - lean_ctor_release(x_176, 0); - lean_ctor_release(x_176, 1); - x_178 = x_176; -} else { - lean_dec_ref(x_176); - x_178 = lean_box(0); -} -if (lean_is_scalar(x_178)) { - x_179 = lean_alloc_ctor(1, 2, 0); -} else { - x_179 = x_178; - lean_ctor_set_tag(x_179, 1); -} -lean_ctor_set(x_179, 0, x_130); -lean_ctor_set(x_179, 1, x_177); -x_10 = x_179; -goto block_22; -} -} -} -else -{ -lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; uint8_t x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; uint8_t x_191; -x_180 = lean_ctor_get(x_135, 0); -x_181 = lean_ctor_get(x_135, 1); -x_182 = lean_ctor_get(x_135, 2); -x_183 = lean_ctor_get(x_135, 3); -x_184 = lean_ctor_get(x_135, 4); -lean_inc(x_184); -lean_inc(x_183); -lean_inc(x_182); -lean_inc(x_181); -lean_inc(x_180); -lean_dec(x_135); -x_185 = lean_ctor_get_uint8(x_136, sizeof(void*)*2); -x_186 = lean_ctor_get(x_136, 0); -lean_inc(x_186); -x_187 = lean_ctor_get(x_136, 1); -lean_inc(x_187); -if (lean_is_exclusive(x_136)) { - lean_ctor_release(x_136, 0); - lean_ctor_release(x_136, 1); - x_188 = x_136; -} else { - lean_dec_ref(x_136); - x_188 = lean_box(0); -} -x_189 = lean_ctor_get(x_187, 2); -lean_inc(x_189); -x_190 = lean_unsigned_to_nat(0u); -x_191 = lean_nat_dec_lt(x_190, x_189); -if (x_191 == 0) -{ -lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; -lean_dec(x_189); -lean_dec(x_187); -lean_dec(x_1); -if (lean_is_scalar(x_188)) { - x_192 = lean_alloc_ctor(0, 2, 1); -} else { - x_192 = x_188; -} -lean_ctor_set(x_192, 0, x_186); -lean_ctor_set(x_192, 1, x_33); -lean_ctor_set_uint8(x_192, sizeof(void*)*2, x_185); -x_193 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_193, 0, x_180); -lean_ctor_set(x_193, 1, x_181); -lean_ctor_set(x_193, 2, x_182); -lean_ctor_set(x_193, 3, x_183); -lean_ctor_set(x_193, 4, x_184); -lean_ctor_set(x_193, 5, x_192); -x_194 = lean_st_ref_set(x_4, x_193, x_137); -lean_dec(x_4); -x_195 = lean_ctor_get(x_194, 1); -lean_inc(x_195); -if (lean_is_exclusive(x_194)) { - lean_ctor_release(x_194, 0); - lean_ctor_release(x_194, 1); - x_196 = x_194; -} else { - lean_dec_ref(x_194); - x_196 = lean_box(0); -} -if (lean_is_scalar(x_196)) { - x_197 = lean_alloc_ctor(1, 2, 0); -} else { - x_197 = x_196; - lean_ctor_set_tag(x_197, 1); -} -lean_ctor_set(x_197, 0, x_130); -lean_ctor_set(x_197, 1, x_195); -x_10 = x_197; -goto block_22; -} -else -{ -lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; -x_198 = lean_unsigned_to_nat(1u); -x_199 = lean_nat_sub(x_189, x_198); -lean_dec(x_189); -x_200 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_187, x_199); -lean_dec(x_199); -x_201 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_186, x_1, x_200); -if (lean_is_scalar(x_188)) { - x_202 = lean_alloc_ctor(0, 2, 1); -} else { - x_202 = x_188; -} -lean_ctor_set(x_202, 0, x_201); -lean_ctor_set(x_202, 1, x_33); -lean_ctor_set_uint8(x_202, sizeof(void*)*2, x_185); -x_203 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_203, 0, x_180); -lean_ctor_set(x_203, 1, x_181); -lean_ctor_set(x_203, 2, x_182); -lean_ctor_set(x_203, 3, x_183); -lean_ctor_set(x_203, 4, x_184); -lean_ctor_set(x_203, 5, x_202); -x_204 = lean_st_ref_set(x_4, x_203, x_137); -lean_dec(x_4); -x_205 = lean_ctor_get(x_204, 1); -lean_inc(x_205); -if (lean_is_exclusive(x_204)) { - lean_ctor_release(x_204, 0); - lean_ctor_release(x_204, 1); - x_206 = x_204; -} else { - lean_dec_ref(x_204); - x_206 = lean_box(0); -} -if (lean_is_scalar(x_206)) { - x_207 = lean_alloc_ctor(1, 2, 0); -} else { - x_207 = x_206; - lean_ctor_set_tag(x_207, 1); -} -lean_ctor_set(x_207, 0, x_130); -lean_ctor_set(x_207, 1, x_205); -x_10 = x_207; -goto block_22; -} -} -} -} -block_22: -{ -if (lean_obj_tag(x_10) == 0) -{ -uint8_t x_11; -x_11 = !lean_is_exclusive(x_10); -if (x_11 == 0) -{ -lean_object* x_12; lean_object* x_13; -x_12 = lean_ctor_get(x_10, 0); -x_13 = lean_ctor_get(x_12, 0); -lean_inc(x_13); -lean_dec(x_12); -lean_ctor_set(x_10, 0, x_13); -return x_10; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_14 = lean_ctor_get(x_10, 0); -x_15 = lean_ctor_get(x_10, 1); -lean_inc(x_15); -lean_inc(x_14); -lean_dec(x_10); -x_16 = lean_ctor_get(x_14, 0); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_17, 0, x_16); -lean_ctor_set(x_17, 1, x_15); -return x_17; -} -} -else -{ -uint8_t x_18; -x_18 = !lean_is_exclusive(x_10); -if (x_18 == 0) -{ -return x_10; -} -else -{ -lean_object* x_19; lean_object* x_20; lean_object* x_21; -x_19 = lean_ctor_get(x_10, 0); -x_20 = lean_ctor_get(x_10, 1); -lean_inc(x_20); -lean_inc(x_19); -lean_dec(x_10); -x_21 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_21, 0, x_19); -lean_ctor_set(x_21, 1, x_20); -return x_21; -} -} -} -} -} -lean_object* l_Lean_Elab_Term_runTactic___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_Elab_Tactic_getUnsolvedGoals(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_11; -} -} -static lean_object* _init_l_Lean_Elab_Term_runTactic___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_runTactic___lambda__1___boxed), 10, 0); -return x_1; -} -} -lean_object* l_Lean_Elab_Term_runTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; -x_10 = lean_unsigned_to_nat(1u); -x_11 = l_Lean_Syntax_getArg(x_2, x_10); -x_12 = lean_st_ref_get(x_8, x_9); -x_13 = lean_ctor_get(x_12, 1); -lean_inc(x_13); -lean_dec(x_12); -x_14 = lean_st_ref_take(x_6, x_13); -x_15 = lean_ctor_get(x_14, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = !lean_is_exclusive(x_15); -if (x_17 == 0) -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; -x_18 = lean_ctor_get(x_15, 0); -lean_inc(x_1); -x_19 = l_Lean_MetavarContext_instantiateMVarDeclMVars(x_18, x_1); -lean_ctor_set(x_15, 0, x_19); -x_20 = lean_st_ref_set(x_6, x_15, x_16); -x_21 = lean_ctor_get(x_20, 1); -lean_inc(x_21); -lean_dec(x_20); -x_22 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalTactic), 10, 1); -lean_closure_set(x_22, 0, x_11); -x_23 = l_Lean_Elab_Term_runTactic___closed__1; -x_24 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); -lean_closure_set(x_24, 0, x_22); -lean_closure_set(x_24, 1, x_23); -lean_inc(x_1); -x_25 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 2); -lean_closure_set(x_25, 0, x_1); -lean_closure_set(x_25, 1, x_24); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_26 = l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___spec__1(x_1, x_25, x_3, x_4, x_5, x_6, x_7, x_8, x_21); -if (lean_obj_tag(x_26) == 0) -{ -uint8_t x_27; -x_27 = !lean_is_exclusive(x_26); -if (x_27 == 0) -{ -lean_object* x_28; lean_object* x_29; uint8_t x_30; -x_28 = lean_ctor_get(x_26, 0); -x_29 = lean_ctor_get(x_26, 1); -x_30 = l_List_isEmpty___rarg(x_28); -if (x_30 == 0) -{ -lean_object* x_31; -lean_free_object(x_26); -x_31 = l_Lean_Elab_Term_reportUnsolvedGoals(x_28, x_3, x_4, x_5, x_6, x_7, x_8, x_29); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_31; -} -else -{ -lean_object* x_32; -lean_dec(x_28); -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_32 = lean_box(0); -lean_ctor_set(x_26, 0, x_32); -return x_26; -} -} -else -{ -lean_object* x_33; lean_object* x_34; uint8_t x_35; -x_33 = lean_ctor_get(x_26, 0); -x_34 = lean_ctor_get(x_26, 1); -lean_inc(x_34); -lean_inc(x_33); -lean_dec(x_26); -x_35 = l_List_isEmpty___rarg(x_33); -if (x_35 == 0) -{ -lean_object* x_36; -x_36 = l_Lean_Elab_Term_reportUnsolvedGoals(x_33, x_3, x_4, x_5, x_6, x_7, x_8, x_34); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_36; -} -else -{ -lean_object* x_37; lean_object* x_38; -lean_dec(x_33); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -x_37 = lean_box(0); -x_38 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_38, 0, x_37); -lean_ctor_set(x_38, 1, x_34); -return x_38; -} -} -} -else -{ -uint8_t x_39; -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_26); -if (x_39 == 0) -{ -return x_26; -} -else -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; -x_40 = lean_ctor_get(x_26, 0); -x_41 = lean_ctor_get(x_26, 1); -lean_inc(x_41); -lean_inc(x_40); -lean_dec(x_26); -x_42 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_42, 0, x_40); -lean_ctor_set(x_42, 1, x_41); -return x_42; -} -} -} -else -{ -lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_43 = lean_ctor_get(x_15, 0); -x_44 = lean_ctor_get(x_15, 1); -x_45 = lean_ctor_get(x_15, 2); -x_46 = lean_ctor_get(x_15, 3); -lean_inc(x_46); -lean_inc(x_45); -lean_inc(x_44); -lean_inc(x_43); -lean_dec(x_15); -lean_inc(x_1); -x_47 = l_Lean_MetavarContext_instantiateMVarDeclMVars(x_43, x_1); -x_48 = lean_alloc_ctor(0, 4, 0); -lean_ctor_set(x_48, 0, x_47); -lean_ctor_set(x_48, 1, x_44); -lean_ctor_set(x_48, 2, x_45); -lean_ctor_set(x_48, 3, x_46); -x_49 = lean_st_ref_set(x_6, x_48, x_16); -x_50 = lean_ctor_get(x_49, 1); -lean_inc(x_50); -lean_dec(x_49); -x_51 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalTactic), 10, 1); -lean_closure_set(x_51, 0, x_11); -x_52 = l_Lean_Elab_Term_runTactic___closed__1; -x_53 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); -lean_closure_set(x_53, 0, x_51); -lean_closure_set(x_53, 1, x_52); -lean_inc(x_1); -x_54 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 2); -lean_closure_set(x_54, 0, x_1); -lean_closure_set(x_54, 1, x_53); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_5); -lean_inc(x_4); -lean_inc(x_3); -x_55 = l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___spec__1(x_1, x_54, x_3, x_4, x_5, x_6, x_7, x_8, x_50); -if (lean_obj_tag(x_55) == 0) -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_58 = x_55; -} else { - lean_dec_ref(x_55); - x_58 = lean_box(0); -} -x_59 = l_List_isEmpty___rarg(x_56); -if (x_59 == 0) -{ -lean_object* x_60; -lean_dec(x_58); -x_60 = l_Lean_Elab_Term_reportUnsolvedGoals(x_56, x_3, x_4, x_5, x_6, x_7, x_8, x_57); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -return x_60; -} -else -{ -lean_object* x_61; lean_object* x_62; -lean_dec(x_56); -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_61 = lean_box(0); -if (lean_is_scalar(x_58)) { - x_62 = lean_alloc_ctor(0, 2, 0); -} else { - x_62 = x_58; -} -lean_ctor_set(x_62, 0, x_61); -lean_ctor_set(x_62, 1, x_57); -return x_62; -} -} -else -{ -lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; -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_63 = lean_ctor_get(x_55, 0); -lean_inc(x_63); -x_64 = lean_ctor_get(x_55, 1); -lean_inc(x_64); -if (lean_is_exclusive(x_55)) { - lean_ctor_release(x_55, 0); - lean_ctor_release(x_55, 1); - x_65 = x_55; -} else { - lean_dec_ref(x_55); - x_65 = lean_box(0); -} -if (lean_is_scalar(x_65)) { - x_66 = lean_alloc_ctor(1, 2, 0); -} else { - x_66 = x_65; -} -lean_ctor_set(x_66, 0, x_63); -lean_ctor_set(x_66, 1, x_64); -return x_66; -} -} -} -} -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___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) { -_start: -{ -lean_object* x_7; -x_7 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_7; -} -} -lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___boxed(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2(x_1); -lean_dec(x_1); -return x_2; -} -} -lean_object* l_Lean_Elab_Term_runTactic___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_Elab_Term_runTactic___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -lean_dec(x_1); -return x_11; -} -} -lean_object* l_Lean_Elab_Term_runTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_Elab_Term_runTactic(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -lean_dec(x_2); -return x_10; -} -} lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumeElabTerm(lean_object* x_1, lean_object* x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { @@ -2370,6 +480,179 @@ x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_El return x_2; } } +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___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) { +_start: +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; +x_7 = lean_st_ref_get(x_5, x_6); +x_8 = lean_ctor_get(x_7, 1); +lean_inc(x_8); +lean_dec(x_7); +x_9 = lean_st_ref_get(x_1, x_8); +x_10 = lean_ctor_get(x_9, 0); +lean_inc(x_10); +x_11 = lean_ctor_get(x_9, 1); +lean_inc(x_11); +lean_dec(x_9); +x_12 = lean_ctor_get(x_10, 5); +lean_inc(x_12); +lean_dec(x_10); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_st_ref_get(x_5, x_11); +x_15 = lean_ctor_get(x_14, 1); +lean_inc(x_15); +lean_dec(x_14); +x_16 = lean_st_ref_take(x_1, x_15); +x_17 = lean_ctor_get(x_16, 0); +lean_inc(x_17); +x_18 = lean_ctor_get(x_17, 5); +lean_inc(x_18); +x_19 = lean_ctor_get(x_16, 1); +lean_inc(x_19); +lean_dec(x_16); +x_20 = !lean_is_exclusive(x_17); +if (x_20 == 0) +{ +lean_object* x_21; uint8_t x_22; +x_21 = lean_ctor_get(x_17, 5); +lean_dec(x_21); +x_22 = !lean_is_exclusive(x_18); +if (x_22 == 0) +{ +lean_object* x_23; lean_object* x_24; lean_object* x_25; uint8_t x_26; +x_23 = lean_ctor_get(x_18, 1); +lean_dec(x_23); +x_24 = l_Std_PersistentArray_empty___closed__1; +lean_ctor_set(x_18, 1, x_24); +x_25 = lean_st_ref_set(x_1, x_17, x_19); +x_26 = !lean_is_exclusive(x_25); +if (x_26 == 0) +{ +lean_object* x_27; +x_27 = lean_ctor_get(x_25, 0); +lean_dec(x_27); +lean_ctor_set(x_25, 0, x_13); +return x_25; +} +else +{ +lean_object* x_28; lean_object* x_29; +x_28 = lean_ctor_get(x_25, 1); +lean_inc(x_28); +lean_dec(x_25); +x_29 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_29, 0, x_13); +lean_ctor_set(x_29, 1, x_28); +return x_29; +} +} +else +{ +uint8_t x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; +x_30 = lean_ctor_get_uint8(x_18, sizeof(void*)*2); +x_31 = lean_ctor_get(x_18, 0); +lean_inc(x_31); +lean_dec(x_18); +x_32 = l_Std_PersistentArray_empty___closed__1; +x_33 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_33, 0, x_31); +lean_ctor_set(x_33, 1, x_32); +lean_ctor_set_uint8(x_33, sizeof(void*)*2, x_30); +lean_ctor_set(x_17, 5, x_33); +x_34 = lean_st_ref_set(x_1, x_17, x_19); +x_35 = lean_ctor_get(x_34, 1); +lean_inc(x_35); +if (lean_is_exclusive(x_34)) { + lean_ctor_release(x_34, 0); + lean_ctor_release(x_34, 1); + x_36 = x_34; +} else { + lean_dec_ref(x_34); + x_36 = lean_box(0); +} +if (lean_is_scalar(x_36)) { + x_37 = lean_alloc_ctor(0, 2, 0); +} else { + x_37 = x_36; +} +lean_ctor_set(x_37, 0, x_13); +lean_ctor_set(x_37, 1, x_35); +return x_37; +} +} +else +{ +lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; +x_38 = lean_ctor_get(x_17, 0); +x_39 = lean_ctor_get(x_17, 1); +x_40 = lean_ctor_get(x_17, 2); +x_41 = lean_ctor_get(x_17, 3); +x_42 = lean_ctor_get(x_17, 4); +lean_inc(x_42); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); +lean_inc(x_38); +lean_dec(x_17); +x_43 = lean_ctor_get_uint8(x_18, sizeof(void*)*2); +x_44 = lean_ctor_get(x_18, 0); +lean_inc(x_44); +if (lean_is_exclusive(x_18)) { + lean_ctor_release(x_18, 0); + lean_ctor_release(x_18, 1); + x_45 = x_18; +} else { + lean_dec_ref(x_18); + x_45 = lean_box(0); +} +x_46 = l_Std_PersistentArray_empty___closed__1; +if (lean_is_scalar(x_45)) { + x_47 = lean_alloc_ctor(0, 2, 1); +} else { + x_47 = x_45; +} +lean_ctor_set(x_47, 0, x_44); +lean_ctor_set(x_47, 1, x_46); +lean_ctor_set_uint8(x_47, sizeof(void*)*2, x_43); +x_48 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_48, 0, x_38); +lean_ctor_set(x_48, 1, x_39); +lean_ctor_set(x_48, 2, x_40); +lean_ctor_set(x_48, 3, x_41); +lean_ctor_set(x_48, 4, x_42); +lean_ctor_set(x_48, 5, x_47); +x_49 = lean_st_ref_set(x_1, x_48, x_19); +x_50 = lean_ctor_get(x_49, 1); +lean_inc(x_50); +if (lean_is_exclusive(x_49)) { + lean_ctor_release(x_49, 0); + lean_ctor_release(x_49, 1); + x_51 = x_49; +} else { + lean_dec_ref(x_49); + x_51 = lean_box(0); +} +if (lean_is_scalar(x_51)) { + x_52 = lean_alloc_ctor(0, 2, 0); +} else { + x_52 = x_51; +} +lean_ctor_set(x_52, 0, x_13); +lean_ctor_set(x_52, 1, x_50); +return x_52; +} +} +} +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg___boxed), 6, 0); +return x_2; +} +} lean_object* l_Lean_Elab_withInfoHole___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___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: { @@ -2402,7 +685,7 @@ lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean x_31 = lean_ctor_get(x_25, 1); lean_inc(x_31); lean_dec(x_25); -x_32 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at_Lean_Elab_Term_runTactic___spec__2___rarg(x_4, x_5, x_6, x_7, x_8, x_31); +x_32 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg(x_4, x_5, x_6, x_7, x_8, x_31); x_33 = lean_ctor_get(x_32, 0); lean_inc(x_33); x_34 = lean_ctor_get(x_32, 1); @@ -3132,6 +1415,66 @@ return x_21; } } } +lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; lean_object* x_11; +x_10 = lean_apply_2(x_2, x_3, x_4); +x_11 = l___private_Lean_Meta_Basic_0__Lean_Meta_withMVarContextImp___rarg(x_1, x_10, x_5, x_6, x_7, x_8, x_9); +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; +} +} +} +} +lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg), 9, 0); +return x_2; +} +} static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___closed__1() { _start: { @@ -3735,7 +2078,7 @@ x_19 = l_Lean_replaceRef(x_3, x_18); lean_dec(x_18); lean_dec(x_3); lean_ctor_set(x_10, 3, x_19); -x_20 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(x_4, x_16, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +x_20 = l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(x_4, x_16, x_6, x_7, x_8, x_9, x_10, x_11, x_12); return x_20; } else @@ -3770,11 +2113,33 @@ lean_ctor_set(x_30, 4, x_25); lean_ctor_set(x_30, 5, x_26); lean_ctor_set(x_30, 6, x_27); lean_ctor_set(x_30, 7, x_28); -x_31 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(x_4, x_16, x_6, x_7, x_8, x_9, x_30, x_11, x_12); +x_31 = l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(x_4, x_16, x_6, x_7, x_8, x_9, x_30, x_11, x_12); return x_31; } } } +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___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) { +_start: +{ +lean_object* x_7; +x_7 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg(x_1, x_2, x_3, x_4, x_5, x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_7; +} +} +lean_object* l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___boxed(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2(x_1); +lean_dec(x_1); +return x_2; +} +} lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { _start: { @@ -3892,7 +2257,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__1___closed__1; x_2 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__1___closed__2; -x_3 = lean_unsigned_to_nat(84u); +x_3 = lean_unsigned_to_nat(66u); x_4 = lean_unsigned_to_nat(36u); x_5 = l_Lean_Name_getString_x21___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -4118,7 +2483,7 @@ x_11 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingI x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg), 9, 2); lean_closure_set(x_12, 0, x_10); lean_closure_set(x_12, 1, x_11); -x_13 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(x_1, x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +x_13 = l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(x_1, x_12, x_2, x_3, x_4, x_5, x_6, x_7, x_8); return x_13; } } @@ -4183,7 +2548,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__1___closed__1; x_2 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__1; -x_3 = lean_unsigned_to_nat(107u); +x_3 = lean_unsigned_to_nat(89u); x_4 = lean_unsigned_to_nat(33u); x_5 = l_Lean_Name_getString_x21___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -4496,7 +2861,7 @@ x_18 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingI x_19 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg), 9, 2); lean_closure_set(x_19, 0, x_17); lean_closure_set(x_19, 1, x_18); -x_20 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_liftTacticElabM___spec__1___rarg(x_16, x_19, x_8, x_9, x_10, x_11, x_12, x_13, x_14); +x_20 = l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(x_16, x_19, x_8, x_9, x_10, x_11, x_12, x_13, x_14); return x_20; } } @@ -4509,1563 +2874,6 @@ lean_dec(x_1); return x_16; } } -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_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_box(0); -x_7 = lean_apply_1(x_2, x_6); -return x_7; -} -case 1: -{ -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_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); -x_10 = lean_ctor_get(x_1, 2); -lean_inc(x_10); -x_11 = lean_ctor_get(x_1, 3); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 4); -lean_inc(x_12); -x_13 = lean_ctor_get(x_1, 5); -lean_inc(x_13); -lean_dec(x_1); -x_14 = lean_apply_6(x_3, x_8, x_9, x_10, x_11, x_12, x_13); -return x_14; -} -case 2: -{ -lean_object* x_15; lean_object* x_16; lean_object* x_17; -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -x_15 = lean_ctor_get(x_1, 0); -lean_inc(x_15); -x_16 = lean_ctor_get(x_1, 1); -lean_inc(x_16); -lean_dec(x_1); -x_17 = lean_apply_2(x_5, x_15, x_16); -return x_17; -} -default: -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; -lean_dec(x_5); -lean_dec(x_3); -lean_dec(x_2); -x_18 = lean_ctor_get(x_1, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_1, 1); -lean_inc(x_19); -lean_dec(x_1); -x_20 = lean_apply_2(x_4, x_18, x_19); -return x_20; -} -} -} -} -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_match__1(lean_object* x_1) { -_start: -{ -lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_match__1___rarg), 5, 0); -return x_2; -} -} -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(lean_object* x_1, uint8_t x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_1, 1); -lean_inc(x_11); -x_12 = lean_ctor_get(x_1, 2); -lean_inc(x_12); -x_13 = !lean_is_exclusive(x_8); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_8, 3); -x_15 = l_Lean_replaceRef(x_11, x_14); -lean_dec(x_14); -lean_ctor_set(x_8, 3, x_15); -switch (lean_obj_tag(x_12)) { -case 0: -{ -lean_object* x_16; lean_object* x_17; -lean_dec(x_11); -x_16 = lean_ctor_get(x_1, 0); -lean_inc(x_16); -lean_dec(x_1); -x_17 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar(x_16, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_17; -} -case 1: -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -lean_dec(x_11); -x_18 = lean_ctor_get(x_12, 0); -lean_inc(x_18); -x_19 = lean_ctor_get(x_12, 1); -lean_inc(x_19); -x_20 = lean_ctor_get(x_12, 2); -lean_inc(x_20); -x_21 = lean_ctor_get(x_12, 3); -lean_inc(x_21); -x_22 = lean_ctor_get(x_12, 4); -lean_inc(x_22); -x_23 = lean_ctor_get(x_12, 5); -lean_inc(x_23); -lean_dec(x_12); -x_24 = lean_ctor_get(x_1, 0); -lean_inc(x_24); -lean_dec(x_1); -x_25 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar(x_24, x_18, x_19, x_20, x_21, x_22, x_23, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_25; -} -case 2: -{ -lean_dec(x_11); -if (x_3 == 0) -{ -uint8_t x_26; lean_object* x_27; lean_object* x_28; -lean_dec(x_8); -lean_dec(x_12); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_26 = 0; -x_27 = lean_box(x_26); -x_28 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_28, 0, x_27); -lean_ctor_set(x_28, 1, x_10); -return x_28; -} -else -{ -lean_object* x_29; lean_object* x_30; uint8_t x_31; -x_29 = lean_ctor_get(x_12, 0); -lean_inc(x_29); -x_30 = lean_ctor_get(x_12, 1); -lean_inc(x_30); -lean_dec(x_12); -x_31 = !lean_is_exclusive(x_4); -if (x_31 == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; -x_32 = lean_ctor_get(x_4, 2); -lean_dec(x_32); -lean_ctor_set(x_4, 2, x_29); -x_33 = lean_ctor_get(x_1, 0); -lean_inc(x_33); -lean_dec(x_1); -x_34 = l_Lean_Elab_Term_runTactic(x_33, x_30, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_30); -if (lean_obj_tag(x_34) == 0) -{ -uint8_t x_35; -x_35 = !lean_is_exclusive(x_34); -if (x_35 == 0) -{ -lean_object* x_36; uint8_t x_37; lean_object* x_38; -x_36 = lean_ctor_get(x_34, 0); -lean_dec(x_36); -x_37 = 1; -x_38 = lean_box(x_37); -lean_ctor_set(x_34, 0, x_38); -return x_34; -} -else -{ -lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; -x_39 = lean_ctor_get(x_34, 1); -lean_inc(x_39); -lean_dec(x_34); -x_40 = 1; -x_41 = lean_box(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_39); -return x_42; -} -} -else -{ -uint8_t x_43; -x_43 = !lean_is_exclusive(x_34); -if (x_43 == 0) -{ -return x_34; -} -else -{ -lean_object* x_44; lean_object* x_45; lean_object* x_46; -x_44 = lean_ctor_get(x_34, 0); -x_45 = lean_ctor_get(x_34, 1); -lean_inc(x_45); -lean_inc(x_44); -lean_dec(x_34); -x_46 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_46, 0, x_44); -lean_ctor_set(x_46, 1, x_45); -return x_46; -} -} -} -else -{ -lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; uint8_t x_52; uint8_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_47 = lean_ctor_get(x_4, 0); -x_48 = lean_ctor_get(x_4, 1); -x_49 = lean_ctor_get(x_4, 3); -x_50 = lean_ctor_get(x_4, 4); -x_51 = lean_ctor_get_uint8(x_4, sizeof(void*)*8); -x_52 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 1); -x_53 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 2); -x_54 = lean_ctor_get(x_4, 5); -x_55 = lean_ctor_get(x_4, 6); -x_56 = lean_ctor_get(x_4, 7); -lean_inc(x_56); -lean_inc(x_55); -lean_inc(x_54); -lean_inc(x_50); -lean_inc(x_49); -lean_inc(x_48); -lean_inc(x_47); -lean_dec(x_4); -x_57 = lean_alloc_ctor(0, 8, 3); -lean_ctor_set(x_57, 0, x_47); -lean_ctor_set(x_57, 1, x_48); -lean_ctor_set(x_57, 2, x_29); -lean_ctor_set(x_57, 3, x_49); -lean_ctor_set(x_57, 4, x_50); -lean_ctor_set(x_57, 5, x_54); -lean_ctor_set(x_57, 6, x_55); -lean_ctor_set(x_57, 7, x_56); -lean_ctor_set_uint8(x_57, sizeof(void*)*8, x_51); -lean_ctor_set_uint8(x_57, sizeof(void*)*8 + 1, x_52); -lean_ctor_set_uint8(x_57, sizeof(void*)*8 + 2, x_53); -x_58 = lean_ctor_get(x_1, 0); -lean_inc(x_58); -lean_dec(x_1); -x_59 = l_Lean_Elab_Term_runTactic(x_58, x_30, x_57, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_30); -if (lean_obj_tag(x_59) == 0) -{ -lean_object* x_60; lean_object* x_61; uint8_t x_62; lean_object* x_63; lean_object* x_64; -x_60 = lean_ctor_get(x_59, 1); -lean_inc(x_60); -if (lean_is_exclusive(x_59)) { - lean_ctor_release(x_59, 0); - lean_ctor_release(x_59, 1); - x_61 = x_59; -} else { - lean_dec_ref(x_59); - x_61 = lean_box(0); -} -x_62 = 1; -x_63 = lean_box(x_62); -if (lean_is_scalar(x_61)) { - x_64 = lean_alloc_ctor(0, 2, 0); -} else { - x_64 = x_61; -} -lean_ctor_set(x_64, 0, x_63); -lean_ctor_set(x_64, 1, x_60); -return x_64; -} -else -{ -lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; -x_65 = lean_ctor_get(x_59, 0); -lean_inc(x_65); -x_66 = lean_ctor_get(x_59, 1); -lean_inc(x_66); -if (lean_is_exclusive(x_59)) { - lean_ctor_release(x_59, 0); - lean_ctor_release(x_59, 1); - x_67 = x_59; -} else { - lean_dec_ref(x_59); - x_67 = lean_box(0); -} -if (lean_is_scalar(x_67)) { - x_68 = lean_alloc_ctor(1, 2, 0); -} else { - x_68 = x_67; -} -lean_ctor_set(x_68, 0, x_65); -lean_ctor_set(x_68, 1, x_66); -return x_68; -} -} -} -} -default: -{ -lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; -x_69 = lean_ctor_get(x_12, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_12, 1); -lean_inc(x_70); -lean_dec(x_12); -x_71 = lean_ctor_get(x_1, 0); -lean_inc(x_71); -lean_dec(x_1); -x_72 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed(x_69, x_70, x_11, x_71, x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_72; -} -} -} -else -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_73 = lean_ctor_get(x_8, 0); -x_74 = lean_ctor_get(x_8, 1); -x_75 = lean_ctor_get(x_8, 2); -x_76 = lean_ctor_get(x_8, 3); -x_77 = lean_ctor_get(x_8, 4); -x_78 = lean_ctor_get(x_8, 5); -x_79 = lean_ctor_get(x_8, 6); -x_80 = lean_ctor_get(x_8, 7); -lean_inc(x_80); -lean_inc(x_79); -lean_inc(x_78); -lean_inc(x_77); -lean_inc(x_76); -lean_inc(x_75); -lean_inc(x_74); -lean_inc(x_73); -lean_dec(x_8); -x_81 = l_Lean_replaceRef(x_11, x_76); -lean_dec(x_76); -x_82 = lean_alloc_ctor(0, 8, 0); -lean_ctor_set(x_82, 0, x_73); -lean_ctor_set(x_82, 1, x_74); -lean_ctor_set(x_82, 2, x_75); -lean_ctor_set(x_82, 3, x_81); -lean_ctor_set(x_82, 4, x_77); -lean_ctor_set(x_82, 5, x_78); -lean_ctor_set(x_82, 6, x_79); -lean_ctor_set(x_82, 7, x_80); -switch (lean_obj_tag(x_12)) { -case 0: -{ -lean_object* x_83; lean_object* x_84; -lean_dec(x_11); -x_83 = lean_ctor_get(x_1, 0); -lean_inc(x_83); -lean_dec(x_1); -x_84 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar(x_83, x_4, x_5, x_6, x_7, x_82, x_9, x_10); -return x_84; -} -case 1: -{ -lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; -lean_dec(x_11); -x_85 = lean_ctor_get(x_12, 0); -lean_inc(x_85); -x_86 = lean_ctor_get(x_12, 1); -lean_inc(x_86); -x_87 = lean_ctor_get(x_12, 2); -lean_inc(x_87); -x_88 = lean_ctor_get(x_12, 3); -lean_inc(x_88); -x_89 = lean_ctor_get(x_12, 4); -lean_inc(x_89); -x_90 = lean_ctor_get(x_12, 5); -lean_inc(x_90); -lean_dec(x_12); -x_91 = lean_ctor_get(x_1, 0); -lean_inc(x_91); -lean_dec(x_1); -x_92 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar(x_91, x_85, x_86, x_87, x_88, x_89, x_90, x_4, x_5, x_6, x_7, x_82, x_9, x_10); -return x_92; -} -case 2: -{ -lean_dec(x_11); -if (x_3 == 0) -{ -uint8_t x_93; lean_object* x_94; lean_object* x_95; -lean_dec(x_82); -lean_dec(x_12); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_1); -x_93 = 0; -x_94 = lean_box(x_93); -x_95 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_95, 0, x_94); -lean_ctor_set(x_95, 1, x_10); -return x_95; -} -else -{ -lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; uint8_t x_103; uint8_t x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; -x_96 = lean_ctor_get(x_12, 0); -lean_inc(x_96); -x_97 = lean_ctor_get(x_12, 1); -lean_inc(x_97); -lean_dec(x_12); -x_98 = lean_ctor_get(x_4, 0); -lean_inc(x_98); -x_99 = lean_ctor_get(x_4, 1); -lean_inc(x_99); -x_100 = lean_ctor_get(x_4, 3); -lean_inc(x_100); -x_101 = lean_ctor_get(x_4, 4); -lean_inc(x_101); -x_102 = lean_ctor_get_uint8(x_4, sizeof(void*)*8); -x_103 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 1); -x_104 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 2); -x_105 = lean_ctor_get(x_4, 5); -lean_inc(x_105); -x_106 = lean_ctor_get(x_4, 6); -lean_inc(x_106); -x_107 = lean_ctor_get(x_4, 7); -lean_inc(x_107); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - lean_ctor_release(x_4, 2); - lean_ctor_release(x_4, 3); - lean_ctor_release(x_4, 4); - lean_ctor_release(x_4, 5); - lean_ctor_release(x_4, 6); - lean_ctor_release(x_4, 7); - x_108 = x_4; -} else { - lean_dec_ref(x_4); - x_108 = lean_box(0); -} -if (lean_is_scalar(x_108)) { - x_109 = lean_alloc_ctor(0, 8, 3); -} else { - x_109 = x_108; -} -lean_ctor_set(x_109, 0, x_98); -lean_ctor_set(x_109, 1, x_99); -lean_ctor_set(x_109, 2, x_96); -lean_ctor_set(x_109, 3, x_100); -lean_ctor_set(x_109, 4, x_101); -lean_ctor_set(x_109, 5, x_105); -lean_ctor_set(x_109, 6, x_106); -lean_ctor_set(x_109, 7, x_107); -lean_ctor_set_uint8(x_109, sizeof(void*)*8, x_102); -lean_ctor_set_uint8(x_109, sizeof(void*)*8 + 1, x_103); -lean_ctor_set_uint8(x_109, sizeof(void*)*8 + 2, x_104); -x_110 = lean_ctor_get(x_1, 0); -lean_inc(x_110); -lean_dec(x_1); -x_111 = l_Lean_Elab_Term_runTactic(x_110, x_97, x_109, x_5, x_6, x_7, x_82, x_9, x_10); -lean_dec(x_97); -if (lean_obj_tag(x_111) == 0) -{ -lean_object* x_112; lean_object* x_113; uint8_t x_114; lean_object* x_115; lean_object* x_116; -x_112 = lean_ctor_get(x_111, 1); -lean_inc(x_112); -if (lean_is_exclusive(x_111)) { - lean_ctor_release(x_111, 0); - lean_ctor_release(x_111, 1); - x_113 = x_111; -} else { - lean_dec_ref(x_111); - x_113 = lean_box(0); -} -x_114 = 1; -x_115 = lean_box(x_114); -if (lean_is_scalar(x_113)) { - x_116 = lean_alloc_ctor(0, 2, 0); -} else { - x_116 = x_113; -} -lean_ctor_set(x_116, 0, x_115); -lean_ctor_set(x_116, 1, x_112); -return x_116; -} -else -{ -lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; -x_117 = lean_ctor_get(x_111, 0); -lean_inc(x_117); -x_118 = lean_ctor_get(x_111, 1); -lean_inc(x_118); -if (lean_is_exclusive(x_111)) { - lean_ctor_release(x_111, 0); - lean_ctor_release(x_111, 1); - x_119 = x_111; -} else { - lean_dec_ref(x_111); - x_119 = lean_box(0); -} -if (lean_is_scalar(x_119)) { - x_120 = lean_alloc_ctor(1, 2, 0); -} else { - x_120 = x_119; -} -lean_ctor_set(x_120, 0, x_117); -lean_ctor_set(x_120, 1, x_118); -return x_120; -} -} -} -default: -{ -lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; -x_121 = lean_ctor_get(x_12, 0); -lean_inc(x_121); -x_122 = lean_ctor_get(x_12, 1); -lean_inc(x_122); -lean_dec(x_12); -x_123 = lean_ctor_get(x_1, 0); -lean_inc(x_123); -lean_dec(x_1); -x_124 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed(x_121, x_122, x_11, x_123, x_2, x_4, x_5, x_6, x_7, x_82, x_9, x_10); -return x_124; -} -} -} -} -} -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -uint8_t x_11; uint8_t x_12; lean_object* x_13; -x_11 = lean_unbox(x_2); -lean_dec(x_2); -x_12 = lean_unbox(x_3); -lean_dec(x_3); -x_13 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_13; -} -} -lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___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) { -_start: -{ -lean_object* x_9; -x_9 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_4, x_5, x_6, x_7, x_8); -return x_9; -} -} -static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("not ready yet"); -return x_1; -} -} -static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("succeeded"); -return x_1; -} -} -static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("resuming "); -return x_1; -} -} -static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { -_start: -{ -if (lean_obj_tag(x_4) == 0) -{ -lean_object* x_13; -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_3); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_5); -lean_ctor_set(x_13, 1, x_12); -return x_13; -} -else -{ -lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; uint8_t x_71; -x_14 = lean_ctor_get(x_4, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_4, 1); -lean_inc(x_15); -if (lean_is_exclusive(x_4)) { - lean_ctor_release(x_4, 0); - lean_ctor_release(x_4, 1); - x_16 = x_4; -} else { - lean_dec_ref(x_4); - x_16 = lean_box(0); -} -x_23 = l_Lean_Elab_initFn____x40_Lean_Elab_Exception___hyg_3____closed__1; -lean_inc(x_3); -x_24 = lean_name_mk_string(x_3, x_23); -x_60 = lean_ctor_get(x_14, 0); -lean_inc(x_60); -lean_inc(x_60); -x_61 = l_Lean_mkMVar(x_60); -x_62 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_62, 0, x_61); -x_63 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8; -x_64 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_64, 0, x_63); -lean_ctor_set(x_64, 1, x_62); -x_65 = l_Lean_KernelException_toMessageData___closed__15; -x_66 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_66, 0, x_64); -lean_ctor_set(x_66, 1, x_65); -x_67 = lean_alloc_closure((void*)(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___lambda__1___boxed), 8, 1); -lean_closure_set(x_67, 0, x_66); -x_68 = lean_st_ref_get(x_11, x_12); -x_69 = lean_ctor_get(x_68, 0); -lean_inc(x_69); -x_70 = lean_ctor_get(x_69, 3); -lean_inc(x_70); -lean_dec(x_69); -x_71 = lean_ctor_get_uint8(x_70, sizeof(void*)*1); -lean_dec(x_70); -if (x_71 == 0) -{ -lean_object* x_72; -lean_dec(x_67); -lean_dec(x_60); -x_72 = lean_ctor_get(x_68, 1); -lean_inc(x_72); -lean_dec(x_68); -x_25 = x_72; -goto block_59; -} -else -{ -lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; -x_73 = lean_ctor_get(x_68, 1); -lean_inc(x_73); -lean_dec(x_68); -lean_inc(x_24); -x_74 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_24, x_6, x_7, x_8, x_9, x_10, x_11, x_73); -x_75 = lean_ctor_get(x_74, 0); -lean_inc(x_75); -x_76 = lean_unbox(x_75); -lean_dec(x_75); -if (x_76 == 0) -{ -lean_object* x_77; -lean_dec(x_67); -lean_dec(x_60); -x_77 = lean_ctor_get(x_74, 1); -lean_inc(x_77); -lean_dec(x_74); -x_25 = x_77; -goto block_59; -} -else -{ -lean_object* x_78; lean_object* x_79; -x_78 = lean_ctor_get(x_74, 1); -lean_inc(x_78); -lean_dec(x_74); -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -x_79 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_logUnassignedUsingErrorInfos___spec__2___rarg(x_60, x_67, x_6, x_7, x_8, x_9, x_10, x_11, x_78); -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_inc(x_81); -lean_dec(x_79); -lean_inc(x_24); -x_82 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_80, x_6, x_7, x_8, x_9, x_10, x_11, x_81); -x_83 = lean_ctor_get(x_82, 1); -lean_inc(x_83); -lean_dec(x_82); -x_25 = x_83; -goto block_59; -} -else -{ -uint8_t x_84; -lean_dec(x_24); -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -x_84 = !lean_is_exclusive(x_79); -if (x_84 == 0) -{ -return x_79; -} -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; -} -} -} -} -block_22: -{ -if (x_17 == 0) -{ -lean_dec(x_16); -lean_dec(x_14); -x_4 = x_15; -x_12 = x_18; -goto _start; -} -else -{ -lean_object* x_20; -if (lean_is_scalar(x_16)) { - x_20 = lean_alloc_ctor(1, 2, 0); -} else { - x_20 = x_16; -} -lean_ctor_set(x_20, 0, x_14); -lean_ctor_set(x_20, 1, x_5); -x_4 = x_15; -x_5 = x_20; -x_12 = x_18; -goto _start; -} -} -block_59: -{ -lean_object* x_26; -lean_inc(x_11); -lean_inc(x_10); -lean_inc(x_9); -lean_inc(x_8); -lean_inc(x_7); -lean_inc(x_6); -lean_inc(x_14); -x_26 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(x_14, x_1, x_2, x_6, x_7, x_8, x_9, x_10, x_11, x_25); -if (lean_obj_tag(x_26) == 0) -{ -lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; -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_44 = lean_st_ref_get(x_11, x_28); -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; uint8_t x_49; -x_48 = lean_ctor_get(x_44, 1); -lean_inc(x_48); -lean_dec(x_44); -x_49 = 0; -x_29 = x_49; -x_30 = x_48; -goto block_43; -} -else -{ -lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; uint8_t x_54; -x_50 = lean_ctor_get(x_44, 1); -lean_inc(x_50); -lean_dec(x_44); -lean_inc(x_24); -x_51 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_24, x_6, x_7, x_8, x_9, x_10, x_11, x_50); -x_52 = lean_ctor_get(x_51, 0); -lean_inc(x_52); -x_53 = lean_ctor_get(x_51, 1); -lean_inc(x_53); -lean_dec(x_51); -x_54 = lean_unbox(x_52); -lean_dec(x_52); -x_29 = x_54; -x_30 = x_53; -goto block_43; -} -block_43: -{ -if (x_29 == 0) -{ -uint8_t x_31; -lean_dec(x_24); -x_31 = lean_unbox(x_27); -lean_dec(x_27); -if (x_31 == 0) -{ -uint8_t x_32; -x_32 = 1; -x_17 = x_32; -x_18 = x_30; -goto block_22; -} -else -{ -uint8_t x_33; -x_33 = 0; -x_17 = x_33; -x_18 = x_30; -goto block_22; -} -} -else -{ -uint8_t x_34; -x_34 = lean_unbox(x_27); -lean_dec(x_27); -if (x_34 == 0) -{ -lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; -x_35 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3; -x_36 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_35, x_6, x_7, x_8, x_9, x_10, x_11, x_30); -x_37 = lean_ctor_get(x_36, 1); -lean_inc(x_37); -lean_dec(x_36); -x_38 = 1; -x_17 = x_38; -x_18 = x_37; -goto block_22; -} -else -{ -lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; -x_39 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6; -x_40 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_39, x_6, x_7, x_8, x_9, x_10, x_11, x_30); -x_41 = lean_ctor_get(x_40, 1); -lean_inc(x_41); -lean_dec(x_40); -x_42 = 0; -x_17 = x_42; -x_18 = x_41; -goto block_22; -} -} -} -} -else -{ -uint8_t x_55; -lean_dec(x_24); -lean_dec(x_16); -lean_dec(x_15); -lean_dec(x_14); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_3); -x_55 = !lean_is_exclusive(x_26); -if (x_55 == 0) -{ -return x_26; -} -else -{ -lean_object* x_56; lean_object* x_57; lean_object* x_58; -x_56 = lean_ctor_get(x_26, 0); -x_57 = lean_ctor_get(x_26, 1); -lean_inc(x_57); -lean_inc(x_56); -lean_dec(x_26); -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_object* l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(uint8_t x_1) { -_start: -{ -if (x_1 == 0) -{ -lean_object* x_2; -x_2 = l_instReprBool___closed__2; -return x_2; -} -else -{ -lean_object* x_3; -x_3 = l_instReprBool___closed__4; -return x_3; -} -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("resuming"); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2() { -_start: -{ -lean_object* x_1; lean_object* x_2; lean_object* x_3; -x_1 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; -x_2 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1; -x_3 = lean_name_mk_string(x_1, x_2); -return x_3; -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string("resuming synthetic metavariables, mayPostpone: "); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5() { -_start: -{ -lean_object* x_1; -x_1 = lean_mk_string(", postponeOnError: "); -return x_1; -} -} -static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6() { -_start: -{ -lean_object* x_1; lean_object* x_2; -x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5; -x_2 = l_Lean_stringToMessageData(x_1); -return x_2; -} -} -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { -_start: -{ -lean_object* x_10; 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; uint8_t x_139; -x_127 = lean_ctor_get(x_7, 0); -lean_inc(x_127); -x_128 = lean_ctor_get(x_7, 1); -lean_inc(x_128); -x_129 = lean_ctor_get(x_7, 2); -lean_inc(x_129); -x_130 = lean_ctor_get(x_7, 3); -lean_inc(x_130); -x_131 = lean_ctor_get(x_7, 4); -lean_inc(x_131); -x_132 = lean_ctor_get(x_7, 5); -lean_inc(x_132); -x_133 = lean_ctor_get(x_7, 6); -lean_inc(x_133); -x_134 = lean_ctor_get(x_7, 7); -lean_inc(x_134); -x_135 = lean_box(0); -x_136 = l_Lean_replaceRef(x_135, x_130); -lean_dec(x_130); -lean_inc(x_127); -x_137 = lean_alloc_ctor(0, 8, 0); -lean_ctor_set(x_137, 0, x_127); -lean_ctor_set(x_137, 1, x_128); -lean_ctor_set(x_137, 2, x_129); -lean_ctor_set(x_137, 3, x_136); -lean_ctor_set(x_137, 4, x_131); -lean_ctor_set(x_137, 5, x_132); -lean_ctor_set(x_137, 6, x_133); -lean_ctor_set(x_137, 7, x_134); -x_138 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2; -x_139 = l_Lean_checkTraceOption(x_127, x_138); -lean_dec(x_127); -if (x_139 == 0) -{ -lean_dec(x_137); -x_10 = x_9; -goto block_126; -} -else -{ -uint8_t x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; -x_140 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); -x_141 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_140); -x_142 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_142, 0, x_141); -x_143 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4; -x_144 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_144, 0, x_143); -lean_ctor_set(x_144, 1, x_142); -x_145 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6; -x_146 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_146, 0, x_144); -lean_ctor_set(x_146, 1, x_145); -x_147 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_1); -x_148 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_148, 0, x_147); -x_149 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_149, 0, x_146); -lean_ctor_set(x_149, 1, x_148); -x_150 = l_Lean_KernelException_toMessageData___closed__15; -x_151 = lean_alloc_ctor(10, 2, 0); -lean_ctor_set(x_151, 0, x_149); -lean_ctor_set(x_151, 1, x_150); -x_152 = l_Lean_Elab_logTrace___at_Lean_Elab_Term_traceAtCmdPos___spec__1(x_138, x_151, x_3, x_4, x_5, x_6, x_137, x_8, x_9); -lean_dec(x_137); -x_153 = lean_ctor_get(x_152, 1); -lean_inc(x_153); -lean_dec(x_152); -x_10 = x_153; -goto block_126; -} -block_126: -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; -x_11 = lean_st_ref_get(x_8, x_10); -x_12 = lean_ctor_get(x_11, 1); -lean_inc(x_12); -lean_dec(x_11); -x_13 = lean_st_ref_get(x_4, x_12); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -x_15 = lean_ctor_get(x_13, 1); -lean_inc(x_15); -lean_dec(x_13); -x_16 = lean_ctor_get(x_14, 1); -lean_inc(x_16); -lean_dec(x_14); -x_17 = lean_unsigned_to_nat(0u); -x_18 = l_List_lengthAux___rarg(x_16, x_17); -x_19 = lean_st_ref_get(x_8, x_15); -x_20 = lean_ctor_get(x_19, 1); -lean_inc(x_20); -lean_dec(x_19); -x_21 = lean_st_ref_take(x_4, x_20); -x_22 = lean_ctor_get(x_21, 0); -lean_inc(x_22); -x_23 = lean_ctor_get(x_21, 1); -lean_inc(x_23); -lean_dec(x_21); -x_24 = !lean_is_exclusive(x_22); -if (x_24 == 0) -{ -lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_25 = lean_ctor_get(x_22, 1); -lean_dec(x_25); -x_26 = lean_box(0); -lean_ctor_set(x_22, 1, x_26); -x_27 = lean_st_ref_set(x_4, x_22, x_23); -x_28 = lean_ctor_get(x_27, 1); -lean_inc(x_28); -lean_dec(x_27); -x_29 = l_List_reverse___rarg(x_16); -x_30 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; -lean_inc(x_8); -lean_inc(x_4); -x_31 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_1, x_2, x_30, x_29, x_26, x_3, x_4, x_5, x_6, x_7, x_8, x_28); -if (lean_obj_tag(x_31) == 0) -{ -lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; -x_32 = lean_ctor_get(x_31, 0); -lean_inc(x_32); -x_33 = lean_ctor_get(x_31, 1); -lean_inc(x_33); -lean_dec(x_31); -x_34 = lean_st_ref_get(x_8, x_33); -lean_dec(x_8); -x_35 = lean_ctor_get(x_34, 1); -lean_inc(x_35); -lean_dec(x_34); -x_36 = lean_st_ref_take(x_4, x_35); -x_37 = lean_ctor_get(x_36, 0); -lean_inc(x_37); -x_38 = lean_ctor_get(x_36, 1); -lean_inc(x_38); -lean_dec(x_36); -x_39 = !lean_is_exclusive(x_37); -if (x_39 == 0) -{ -lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; -x_40 = lean_ctor_get(x_37, 1); -lean_inc(x_32); -x_41 = l_List_append___rarg(x_40, x_32); -lean_ctor_set(x_37, 1, x_41); -x_42 = lean_st_ref_set(x_4, x_37, x_38); -lean_dec(x_4); -x_43 = !lean_is_exclusive(x_42); -if (x_43 == 0) -{ -lean_object* x_44; lean_object* x_45; uint8_t x_46; -x_44 = lean_ctor_get(x_42, 0); -lean_dec(x_44); -x_45 = l_List_lengthAux___rarg(x_32, x_17); -lean_dec(x_32); -x_46 = lean_nat_dec_eq(x_18, x_45); -lean_dec(x_45); -lean_dec(x_18); -if (x_46 == 0) -{ -uint8_t x_47; lean_object* x_48; -x_47 = 1; -x_48 = lean_box(x_47); -lean_ctor_set(x_42, 0, x_48); -return x_42; -} -else -{ -uint8_t x_49; lean_object* x_50; -x_49 = 0; -x_50 = lean_box(x_49); -lean_ctor_set(x_42, 0, x_50); -return x_42; -} -} -else -{ -lean_object* x_51; lean_object* x_52; uint8_t x_53; -x_51 = lean_ctor_get(x_42, 1); -lean_inc(x_51); -lean_dec(x_42); -x_52 = l_List_lengthAux___rarg(x_32, x_17); -lean_dec(x_32); -x_53 = lean_nat_dec_eq(x_18, x_52); -lean_dec(x_52); -lean_dec(x_18); -if (x_53 == 0) -{ -uint8_t x_54; lean_object* x_55; lean_object* x_56; -x_54 = 1; -x_55 = lean_box(x_54); -x_56 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_56, 0, x_55); -lean_ctor_set(x_56, 1, x_51); -return x_56; -} -else -{ -uint8_t x_57; lean_object* x_58; lean_object* x_59; -x_57 = 0; -x_58 = lean_box(x_57); -x_59 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_59, 0, x_58); -lean_ctor_set(x_59, 1, x_51); -return x_59; -} -} -} -else -{ -lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72; -x_60 = lean_ctor_get(x_37, 0); -x_61 = lean_ctor_get(x_37, 1); -x_62 = lean_ctor_get(x_37, 2); -x_63 = lean_ctor_get(x_37, 3); -x_64 = lean_ctor_get(x_37, 4); -x_65 = lean_ctor_get(x_37, 5); -lean_inc(x_65); -lean_inc(x_64); -lean_inc(x_63); -lean_inc(x_62); -lean_inc(x_61); -lean_inc(x_60); -lean_dec(x_37); -lean_inc(x_32); -x_66 = l_List_append___rarg(x_61, x_32); -x_67 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_67, 0, x_60); -lean_ctor_set(x_67, 1, x_66); -lean_ctor_set(x_67, 2, x_62); -lean_ctor_set(x_67, 3, x_63); -lean_ctor_set(x_67, 4, x_64); -lean_ctor_set(x_67, 5, x_65); -x_68 = lean_st_ref_set(x_4, x_67, x_38); -lean_dec(x_4); -x_69 = lean_ctor_get(x_68, 1); -lean_inc(x_69); -if (lean_is_exclusive(x_68)) { - lean_ctor_release(x_68, 0); - lean_ctor_release(x_68, 1); - x_70 = x_68; -} else { - lean_dec_ref(x_68); - x_70 = lean_box(0); -} -x_71 = l_List_lengthAux___rarg(x_32, x_17); -lean_dec(x_32); -x_72 = lean_nat_dec_eq(x_18, x_71); -lean_dec(x_71); -lean_dec(x_18); -if (x_72 == 0) -{ -uint8_t x_73; lean_object* x_74; lean_object* x_75; -x_73 = 1; -x_74 = lean_box(x_73); -if (lean_is_scalar(x_70)) { - x_75 = lean_alloc_ctor(0, 2, 0); -} else { - x_75 = x_70; -} -lean_ctor_set(x_75, 0, x_74); -lean_ctor_set(x_75, 1, x_69); -return x_75; -} -else -{ -uint8_t x_76; lean_object* x_77; lean_object* x_78; -x_76 = 0; -x_77 = lean_box(x_76); -if (lean_is_scalar(x_70)) { - x_78 = lean_alloc_ctor(0, 2, 0); -} else { - x_78 = x_70; -} -lean_ctor_set(x_78, 0, x_77); -lean_ctor_set(x_78, 1, x_69); -return x_78; -} -} -} -else -{ -uint8_t x_79; -lean_dec(x_18); -lean_dec(x_8); -lean_dec(x_4); -x_79 = !lean_is_exclusive(x_31); -if (x_79 == 0) -{ -return x_31; -} -else -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_31, 0); -x_81 = lean_ctor_get(x_31, 1); -lean_inc(x_81); -lean_inc(x_80); -lean_dec(x_31); -x_82 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_82, 0, x_80); -lean_ctor_set(x_82, 1, x_81); -return x_82; -} -} -} -else -{ -lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_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_83 = lean_ctor_get(x_22, 0); -x_84 = lean_ctor_get(x_22, 2); -x_85 = lean_ctor_get(x_22, 3); -x_86 = lean_ctor_get(x_22, 4); -x_87 = lean_ctor_get(x_22, 5); -lean_inc(x_87); -lean_inc(x_86); -lean_inc(x_85); -lean_inc(x_84); -lean_inc(x_83); -lean_dec(x_22); -x_88 = lean_box(0); -x_89 = lean_alloc_ctor(0, 6, 0); -lean_ctor_set(x_89, 0, x_83); -lean_ctor_set(x_89, 1, x_88); -lean_ctor_set(x_89, 2, x_84); -lean_ctor_set(x_89, 3, x_85); -lean_ctor_set(x_89, 4, x_86); -lean_ctor_set(x_89, 5, x_87); -x_90 = lean_st_ref_set(x_4, x_89, x_23); -x_91 = lean_ctor_get(x_90, 1); -lean_inc(x_91); -lean_dec(x_90); -x_92 = l_List_reverse___rarg(x_16); -x_93 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; -lean_inc(x_8); -lean_inc(x_4); -x_94 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_1, x_2, x_93, x_92, x_88, x_3, x_4, x_5, x_6, x_7, x_8, x_91); -if (lean_obj_tag(x_94) == 0) -{ -lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; 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; uint8_t x_115; -x_95 = lean_ctor_get(x_94, 0); -lean_inc(x_95); -x_96 = lean_ctor_get(x_94, 1); -lean_inc(x_96); -lean_dec(x_94); -x_97 = lean_st_ref_get(x_8, x_96); -lean_dec(x_8); -x_98 = lean_ctor_get(x_97, 1); -lean_inc(x_98); -lean_dec(x_97); -x_99 = lean_st_ref_take(x_4, x_98); -x_100 = lean_ctor_get(x_99, 0); -lean_inc(x_100); -x_101 = lean_ctor_get(x_99, 1); -lean_inc(x_101); -lean_dec(x_99); -x_102 = lean_ctor_get(x_100, 0); -lean_inc(x_102); -x_103 = lean_ctor_get(x_100, 1); -lean_inc(x_103); -x_104 = lean_ctor_get(x_100, 2); -lean_inc(x_104); -x_105 = lean_ctor_get(x_100, 3); -lean_inc(x_105); -x_106 = lean_ctor_get(x_100, 4); -lean_inc(x_106); -x_107 = lean_ctor_get(x_100, 5); -lean_inc(x_107); -if (lean_is_exclusive(x_100)) { - lean_ctor_release(x_100, 0); - lean_ctor_release(x_100, 1); - lean_ctor_release(x_100, 2); - lean_ctor_release(x_100, 3); - lean_ctor_release(x_100, 4); - lean_ctor_release(x_100, 5); - x_108 = x_100; -} else { - lean_dec_ref(x_100); - x_108 = lean_box(0); -} -lean_inc(x_95); -x_109 = l_List_append___rarg(x_103, x_95); -if (lean_is_scalar(x_108)) { - x_110 = lean_alloc_ctor(0, 6, 0); -} else { - x_110 = x_108; -} -lean_ctor_set(x_110, 0, x_102); -lean_ctor_set(x_110, 1, x_109); -lean_ctor_set(x_110, 2, x_104); -lean_ctor_set(x_110, 3, x_105); -lean_ctor_set(x_110, 4, x_106); -lean_ctor_set(x_110, 5, x_107); -x_111 = lean_st_ref_set(x_4, x_110, x_101); -lean_dec(x_4); -x_112 = lean_ctor_get(x_111, 1); -lean_inc(x_112); -if (lean_is_exclusive(x_111)) { - lean_ctor_release(x_111, 0); - lean_ctor_release(x_111, 1); - x_113 = x_111; -} else { - lean_dec_ref(x_111); - x_113 = lean_box(0); -} -x_114 = l_List_lengthAux___rarg(x_95, x_17); -lean_dec(x_95); -x_115 = lean_nat_dec_eq(x_18, x_114); -lean_dec(x_114); -lean_dec(x_18); -if (x_115 == 0) -{ -uint8_t x_116; lean_object* x_117; lean_object* x_118; -x_116 = 1; -x_117 = lean_box(x_116); -if (lean_is_scalar(x_113)) { - x_118 = lean_alloc_ctor(0, 2, 0); -} else { - x_118 = x_113; -} -lean_ctor_set(x_118, 0, x_117); -lean_ctor_set(x_118, 1, x_112); -return x_118; -} -else -{ -uint8_t x_119; lean_object* x_120; lean_object* x_121; -x_119 = 0; -x_120 = lean_box(x_119); -if (lean_is_scalar(x_113)) { - x_121 = lean_alloc_ctor(0, 2, 0); -} else { - x_121 = x_113; -} -lean_ctor_set(x_121, 0, x_120); -lean_ctor_set(x_121, 1, x_112); -return x_121; -} -} -else -{ -lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; -lean_dec(x_18); -lean_dec(x_8); -lean_dec(x_4); -x_122 = lean_ctor_get(x_94, 0); -lean_inc(x_122); -x_123 = lean_ctor_get(x_94, 1); -lean_inc(x_123); -if (lean_is_exclusive(x_94)) { - lean_ctor_release(x_94, 0); - lean_ctor_release(x_94, 1); - x_124 = x_94; -} else { - lean_dec_ref(x_94); - x_124 = lean_box(0); -} -if (lean_is_scalar(x_124)) { - x_125 = lean_alloc_ctor(1, 2, 0); -} else { - x_125 = x_124; -} -lean_ctor_set(x_125, 0, x_122); -lean_ctor_set(x_125, 1, x_123); -return x_125; -} -} -} -} -} -lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_9; -} -} -lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { -_start: -{ -uint8_t x_13; uint8_t x_14; lean_object* x_15; -x_13 = lean_unbox(x_1); -lean_dec(x_1); -x_14 = lean_unbox(x_2); -lean_dec(x_2); -x_15 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); -return x_15; -} -} -lean_object* l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2___boxed(lean_object* x_1) { -_start: -{ -uint8_t x_2; lean_object* x_3; -x_2 = lean_unbox(x_1); -lean_dec(x_1); -x_3 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_2); -return x_3; -} -} -lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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; uint8_t x_11; lean_object* x_12; -x_10 = lean_unbox(x_1); -lean_dec(x_1); -x_11 = lean_unbox(x_2); -lean_dec(x_2); -x_12 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); -return x_12; -} -} lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance_match__1___rarg(lean_object* x_1, lean_object* x_2) { _start: { @@ -8776,7 +5584,7 @@ _start: lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6; x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar___lambda__1___closed__1; x_2 = l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___closed__2; -x_3 = lean_unsigned_to_nat(232u); +x_3 = lean_unsigned_to_nat(173u); x_4 = lean_unsigned_to_nat(11u); x_5 = l_Lean_Name_getString_x21___closed__3; x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5); @@ -9334,6 +6142,81 @@ lean_dec(x_1); return x_2; } } +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_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_box(0); +x_7 = lean_apply_1(x_2, x_6); +return x_7; +} +case 1: +{ +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_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); +x_10 = lean_ctor_get(x_1, 2); +lean_inc(x_10); +x_11 = lean_ctor_get(x_1, 3); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 4); +lean_inc(x_12); +x_13 = lean_ctor_get(x_1, 5); +lean_inc(x_13); +lean_dec(x_1); +x_14 = lean_apply_6(x_3, x_8, x_9, x_10, x_11, x_12, x_13); +return x_14; +} +case 2: +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +x_15 = lean_ctor_get(x_1, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_1, 1); +lean_inc(x_16); +lean_dec(x_1); +x_17 = lean_apply_2(x_5, x_15, x_16); +return x_17; +} +default: +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; +lean_dec(x_5); +lean_dec(x_3); +lean_dec(x_2); +x_18 = lean_ctor_get(x_1, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_1, 1); +lean_inc(x_19); +lean_dec(x_1); +x_20 = lean_apply_2(x_4, x_18, x_19); +return x_20; +} +} +} +} +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar_match__1___rarg), 5, 0); +return x_2; +} +} lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars_loop___lambda__1(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { @@ -10768,6 +7651,3047 @@ return x_45; } } } +lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___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) { +_start: +{ +lean_object* x_9; +x_9 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_4, x_5, x_6, x_7, x_8); +return x_9; +} +} +static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("not ready yet"); +return x_1; +} +} +static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("succeeded"); +return x_1; +} +} +static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("resuming "); +return x_1; +} +} +static lean_object* _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +if (lean_obj_tag(x_4) == 0) +{ +lean_object* x_13; +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_3); +x_13 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_13, 0, x_5); +lean_ctor_set(x_13, 1, x_12); +return x_13; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; lean_object* x_18; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; uint8_t x_71; +x_14 = lean_ctor_get(x_4, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_4, 1); +lean_inc(x_15); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + x_16 = x_4; +} else { + lean_dec_ref(x_4); + x_16 = lean_box(0); +} +x_23 = l_Lean_Elab_initFn____x40_Lean_Elab_Exception___hyg_3____closed__1; +lean_inc(x_3); +x_24 = lean_name_mk_string(x_3, x_23); +x_60 = lean_ctor_get(x_14, 0); +lean_inc(x_60); +lean_inc(x_60); +x_61 = l_Lean_mkMVar(x_60); +x_62 = lean_alloc_ctor(2, 1, 0); +lean_ctor_set(x_62, 0, x_61); +x_63 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8; +x_64 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_62); +x_65 = l_Lean_KernelException_toMessageData___closed__15; +x_66 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); +x_67 = lean_alloc_closure((void*)(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___lambda__1___boxed), 8, 1); +lean_closure_set(x_67, 0, x_66); +x_68 = lean_st_ref_get(x_11, x_12); +x_69 = lean_ctor_get(x_68, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_69, 3); +lean_inc(x_70); +lean_dec(x_69); +x_71 = lean_ctor_get_uint8(x_70, sizeof(void*)*1); +lean_dec(x_70); +if (x_71 == 0) +{ +lean_object* x_72; +lean_dec(x_67); +lean_dec(x_60); +x_72 = lean_ctor_get(x_68, 1); +lean_inc(x_72); +lean_dec(x_68); +x_25 = x_72; +goto block_59; +} +else +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; uint8_t x_76; +x_73 = lean_ctor_get(x_68, 1); +lean_inc(x_73); +lean_dec(x_68); +lean_inc(x_24); +x_74 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_24, x_6, x_7, x_8, x_9, x_10, x_11, x_73); +x_75 = lean_ctor_get(x_74, 0); +lean_inc(x_75); +x_76 = lean_unbox(x_75); +lean_dec(x_75); +if (x_76 == 0) +{ +lean_object* x_77; +lean_dec(x_67); +lean_dec(x_60); +x_77 = lean_ctor_get(x_74, 1); +lean_inc(x_77); +lean_dec(x_74); +x_25 = x_77; +goto block_59; +} +else +{ +lean_object* x_78; lean_object* x_79; +x_78 = lean_ctor_get(x_74, 1); +lean_inc(x_78); +lean_dec(x_74); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +x_79 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Term_logUnassignedUsingErrorInfos___spec__2___rarg(x_60, x_67, x_6, x_7, x_8, x_9, x_10, x_11, x_78); +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_inc(x_81); +lean_dec(x_79); +lean_inc(x_24); +x_82 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_80, x_6, x_7, x_8, x_9, x_10, x_11, x_81); +x_83 = lean_ctor_get(x_82, 1); +lean_inc(x_83); +lean_dec(x_82); +x_25 = x_83; +goto block_59; +} +else +{ +uint8_t x_84; +lean_dec(x_24); +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +x_84 = !lean_is_exclusive(x_79); +if (x_84 == 0) +{ +return x_79; +} +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; +} +} +} +} +block_22: +{ +if (x_17 == 0) +{ +lean_dec(x_16); +lean_dec(x_14); +x_4 = x_15; +x_12 = x_18; +goto _start; +} +else +{ +lean_object* x_20; +if (lean_is_scalar(x_16)) { + x_20 = lean_alloc_ctor(1, 2, 0); +} else { + x_20 = x_16; +} +lean_ctor_set(x_20, 0, x_14); +lean_ctor_set(x_20, 1, x_5); +x_4 = x_15; +x_5 = x_20; +x_12 = x_18; +goto _start; +} +} +block_59: +{ +lean_object* x_26; +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_14); +x_26 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(x_14, x_1, x_2, x_6, x_7, x_8, x_9, x_10, x_11, x_25); +if (lean_obj_tag(x_26) == 0) +{ +lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_44; lean_object* x_45; lean_object* x_46; uint8_t x_47; +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_44 = lean_st_ref_get(x_11, x_28); +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; uint8_t x_49; +x_48 = lean_ctor_get(x_44, 1); +lean_inc(x_48); +lean_dec(x_44); +x_49 = 0; +x_29 = x_49; +x_30 = x_48; +goto block_43; +} +else +{ +lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; uint8_t x_54; +x_50 = lean_ctor_get(x_44, 1); +lean_inc(x_50); +lean_dec(x_44); +lean_inc(x_24); +x_51 = l___private_Lean_Util_Trace_0__Lean_checkTraceOptionM___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__2(x_24, x_6, x_7, x_8, x_9, x_10, x_11, x_50); +x_52 = lean_ctor_get(x_51, 0); +lean_inc(x_52); +x_53 = lean_ctor_get(x_51, 1); +lean_inc(x_53); +lean_dec(x_51); +x_54 = lean_unbox(x_52); +lean_dec(x_52); +x_29 = x_54; +x_30 = x_53; +goto block_43; +} +block_43: +{ +if (x_29 == 0) +{ +uint8_t x_31; +lean_dec(x_24); +x_31 = lean_unbox(x_27); +lean_dec(x_27); +if (x_31 == 0) +{ +uint8_t x_32; +x_32 = 1; +x_17 = x_32; +x_18 = x_30; +goto block_22; +} +else +{ +uint8_t x_33; +x_33 = 0; +x_17 = x_33; +x_18 = x_30; +goto block_22; +} +} +else +{ +uint8_t x_34; +x_34 = lean_unbox(x_27); +lean_dec(x_27); +if (x_34 == 0) +{ +lean_object* x_35; lean_object* x_36; lean_object* x_37; uint8_t x_38; +x_35 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3; +x_36 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_35, x_6, x_7, x_8, x_9, x_10, x_11, x_30); +x_37 = lean_ctor_get(x_36, 1); +lean_inc(x_37); +lean_dec(x_36); +x_38 = 1; +x_17 = x_38; +x_18 = x_37; +goto block_22; +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; uint8_t x_42; +x_39 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6; +x_40 = l_Lean_addTrace___at___private_Lean_Elab_Term_0__Lean_Elab_Term_postponeElabTerm___spec__1(x_24, x_39, x_6, x_7, x_8, x_9, x_10, x_11, x_30); +x_41 = lean_ctor_get(x_40, 1); +lean_inc(x_41); +lean_dec(x_40); +x_42 = 0; +x_17 = x_42; +x_18 = x_41; +goto block_22; +} +} +} +} +else +{ +uint8_t x_55; +lean_dec(x_24); +lean_dec(x_16); +lean_dec(x_15); +lean_dec(x_14); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_3); +x_55 = !lean_is_exclusive(x_26); +if (x_55 == 0) +{ +return x_26; +} +else +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_ctor_get(x_26, 0); +x_57 = lean_ctor_get(x_26, 1); +lean_inc(x_57); +lean_inc(x_56); +lean_dec(x_26); +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_object* l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(uint8_t x_1) { +_start: +{ +if (x_1 == 0) +{ +lean_object* x_2; +x_2 = l_instReprBool___closed__2; +return x_2; +} +else +{ +lean_object* x_3; +x_3 = l_instReprBool___closed__4; +return x_3; +} +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("resuming"); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; +x_2 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("resuming synthetic metavariables, mayPostpone: "); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string(", postponeOnError: "); +return x_1; +} +} +static lean_object* _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; +x_1 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5; +x_2 = l_Lean_stringToMessageData(x_1); +return x_2; +} +} +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep(uint8_t x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; 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; uint8_t x_139; +x_127 = lean_ctor_get(x_7, 0); +lean_inc(x_127); +x_128 = lean_ctor_get(x_7, 1); +lean_inc(x_128); +x_129 = lean_ctor_get(x_7, 2); +lean_inc(x_129); +x_130 = lean_ctor_get(x_7, 3); +lean_inc(x_130); +x_131 = lean_ctor_get(x_7, 4); +lean_inc(x_131); +x_132 = lean_ctor_get(x_7, 5); +lean_inc(x_132); +x_133 = lean_ctor_get(x_7, 6); +lean_inc(x_133); +x_134 = lean_ctor_get(x_7, 7); +lean_inc(x_134); +x_135 = lean_box(0); +x_136 = l_Lean_replaceRef(x_135, x_130); +lean_dec(x_130); +lean_inc(x_127); +x_137 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_137, 0, x_127); +lean_ctor_set(x_137, 1, x_128); +lean_ctor_set(x_137, 2, x_129); +lean_ctor_set(x_137, 3, x_136); +lean_ctor_set(x_137, 4, x_131); +lean_ctor_set(x_137, 5, x_132); +lean_ctor_set(x_137, 6, x_133); +lean_ctor_set(x_137, 7, x_134); +x_138 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2; +x_139 = l_Lean_checkTraceOption(x_127, x_138); +lean_dec(x_127); +if (x_139 == 0) +{ +lean_dec(x_137); +x_10 = x_9; +goto block_126; +} +else +{ +uint8_t x_140; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150; lean_object* x_151; lean_object* x_152; lean_object* x_153; +x_140 = lean_ctor_get_uint8(x_3, sizeof(void*)*8); +x_141 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_140); +x_142 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_142, 0, x_141); +x_143 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4; +x_144 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_144, 0, x_143); +lean_ctor_set(x_144, 1, x_142); +x_145 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6; +x_146 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_146, 0, x_144); +lean_ctor_set(x_146, 1, x_145); +x_147 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_1); +x_148 = lean_alloc_ctor(0, 1, 0); +lean_ctor_set(x_148, 0, x_147); +x_149 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_149, 0, x_146); +lean_ctor_set(x_149, 1, x_148); +x_150 = l_Lean_KernelException_toMessageData___closed__15; +x_151 = lean_alloc_ctor(10, 2, 0); +lean_ctor_set(x_151, 0, x_149); +lean_ctor_set(x_151, 1, x_150); +x_152 = l_Lean_Elab_logTrace___at_Lean_Elab_Term_traceAtCmdPos___spec__1(x_138, x_151, x_3, x_4, x_5, x_6, x_137, x_8, x_9); +lean_dec(x_137); +x_153 = lean_ctor_get(x_152, 1); +lean_inc(x_153); +lean_dec(x_152); +x_10 = x_153; +goto block_126; +} +block_126: +{ +lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; uint8_t x_24; +x_11 = lean_st_ref_get(x_8, x_10); +x_12 = lean_ctor_get(x_11, 1); +lean_inc(x_12); +lean_dec(x_11); +x_13 = lean_st_ref_get(x_4, x_12); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +x_15 = lean_ctor_get(x_13, 1); +lean_inc(x_15); +lean_dec(x_13); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_unsigned_to_nat(0u); +x_18 = l_List_lengthAux___rarg(x_16, x_17); +x_19 = lean_st_ref_get(x_8, x_15); +x_20 = lean_ctor_get(x_19, 1); +lean_inc(x_20); +lean_dec(x_19); +x_21 = lean_st_ref_take(x_4, x_20); +x_22 = lean_ctor_get(x_21, 0); +lean_inc(x_22); +x_23 = lean_ctor_get(x_21, 1); +lean_inc(x_23); +lean_dec(x_21); +x_24 = !lean_is_exclusive(x_22); +if (x_24 == 0) +{ +lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; +x_25 = lean_ctor_get(x_22, 1); +lean_dec(x_25); +x_26 = lean_box(0); +lean_ctor_set(x_22, 1, x_26); +x_27 = lean_st_ref_set(x_4, x_22, x_23); +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = l_List_reverse___rarg(x_16); +x_30 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; +lean_inc(x_8); +lean_inc(x_4); +x_31 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_1, x_2, x_30, x_29, x_26, x_3, x_4, x_5, x_6, x_7, x_8, x_28); +if (lean_obj_tag(x_31) == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; uint8_t x_39; +x_32 = lean_ctor_get(x_31, 0); +lean_inc(x_32); +x_33 = lean_ctor_get(x_31, 1); +lean_inc(x_33); +lean_dec(x_31); +x_34 = lean_st_ref_get(x_8, x_33); +lean_dec(x_8); +x_35 = lean_ctor_get(x_34, 1); +lean_inc(x_35); +lean_dec(x_34); +x_36 = lean_st_ref_take(x_4, x_35); +x_37 = lean_ctor_get(x_36, 0); +lean_inc(x_37); +x_38 = lean_ctor_get(x_36, 1); +lean_inc(x_38); +lean_dec(x_36); +x_39 = !lean_is_exclusive(x_37); +if (x_39 == 0) +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; uint8_t x_43; +x_40 = lean_ctor_get(x_37, 1); +lean_inc(x_32); +x_41 = l_List_append___rarg(x_40, x_32); +lean_ctor_set(x_37, 1, x_41); +x_42 = lean_st_ref_set(x_4, x_37, x_38); +lean_dec(x_4); +x_43 = !lean_is_exclusive(x_42); +if (x_43 == 0) +{ +lean_object* x_44; lean_object* x_45; uint8_t x_46; +x_44 = lean_ctor_get(x_42, 0); +lean_dec(x_44); +x_45 = l_List_lengthAux___rarg(x_32, x_17); +lean_dec(x_32); +x_46 = lean_nat_dec_eq(x_18, x_45); +lean_dec(x_45); +lean_dec(x_18); +if (x_46 == 0) +{ +uint8_t x_47; lean_object* x_48; +x_47 = 1; +x_48 = lean_box(x_47); +lean_ctor_set(x_42, 0, x_48); +return x_42; +} +else +{ +uint8_t x_49; lean_object* x_50; +x_49 = 0; +x_50 = lean_box(x_49); +lean_ctor_set(x_42, 0, x_50); +return x_42; +} +} +else +{ +lean_object* x_51; lean_object* x_52; uint8_t x_53; +x_51 = lean_ctor_get(x_42, 1); +lean_inc(x_51); +lean_dec(x_42); +x_52 = l_List_lengthAux___rarg(x_32, x_17); +lean_dec(x_32); +x_53 = lean_nat_dec_eq(x_18, x_52); +lean_dec(x_52); +lean_dec(x_18); +if (x_53 == 0) +{ +uint8_t x_54; lean_object* x_55; lean_object* x_56; +x_54 = 1; +x_55 = lean_box(x_54); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_55); +lean_ctor_set(x_56, 1, x_51); +return x_56; +} +else +{ +uint8_t x_57; lean_object* x_58; lean_object* x_59; +x_57 = 0; +x_58 = lean_box(x_57); +x_59 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_59, 0, x_58); +lean_ctor_set(x_59, 1, x_51); +return x_59; +} +} +} +else +{ +lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72; +x_60 = lean_ctor_get(x_37, 0); +x_61 = lean_ctor_get(x_37, 1); +x_62 = lean_ctor_get(x_37, 2); +x_63 = lean_ctor_get(x_37, 3); +x_64 = lean_ctor_get(x_37, 4); +x_65 = lean_ctor_get(x_37, 5); +lean_inc(x_65); +lean_inc(x_64); +lean_inc(x_63); +lean_inc(x_62); +lean_inc(x_61); +lean_inc(x_60); +lean_dec(x_37); +lean_inc(x_32); +x_66 = l_List_append___rarg(x_61, x_32); +x_67 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_67, 0, x_60); +lean_ctor_set(x_67, 1, x_66); +lean_ctor_set(x_67, 2, x_62); +lean_ctor_set(x_67, 3, x_63); +lean_ctor_set(x_67, 4, x_64); +lean_ctor_set(x_67, 5, x_65); +x_68 = lean_st_ref_set(x_4, x_67, x_38); +lean_dec(x_4); +x_69 = lean_ctor_get(x_68, 1); +lean_inc(x_69); +if (lean_is_exclusive(x_68)) { + lean_ctor_release(x_68, 0); + lean_ctor_release(x_68, 1); + x_70 = x_68; +} else { + lean_dec_ref(x_68); + x_70 = lean_box(0); +} +x_71 = l_List_lengthAux___rarg(x_32, x_17); +lean_dec(x_32); +x_72 = lean_nat_dec_eq(x_18, x_71); +lean_dec(x_71); +lean_dec(x_18); +if (x_72 == 0) +{ +uint8_t x_73; lean_object* x_74; lean_object* x_75; +x_73 = 1; +x_74 = lean_box(x_73); +if (lean_is_scalar(x_70)) { + x_75 = lean_alloc_ctor(0, 2, 0); +} else { + x_75 = x_70; +} +lean_ctor_set(x_75, 0, x_74); +lean_ctor_set(x_75, 1, x_69); +return x_75; +} +else +{ +uint8_t x_76; lean_object* x_77; lean_object* x_78; +x_76 = 0; +x_77 = lean_box(x_76); +if (lean_is_scalar(x_70)) { + x_78 = lean_alloc_ctor(0, 2, 0); +} else { + x_78 = x_70; +} +lean_ctor_set(x_78, 0, x_77); +lean_ctor_set(x_78, 1, x_69); +return x_78; +} +} +} +else +{ +uint8_t x_79; +lean_dec(x_18); +lean_dec(x_8); +lean_dec(x_4); +x_79 = !lean_is_exclusive(x_31); +if (x_79 == 0) +{ +return x_31; +} +else +{ +lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_80 = lean_ctor_get(x_31, 0); +x_81 = lean_ctor_get(x_31, 1); +lean_inc(x_81); +lean_inc(x_80); +lean_dec(x_31); +x_82 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_82, 0, x_80); +lean_ctor_set(x_82, 1, x_81); +return x_82; +} +} +} +else +{ +lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_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_83 = lean_ctor_get(x_22, 0); +x_84 = lean_ctor_get(x_22, 2); +x_85 = lean_ctor_get(x_22, 3); +x_86 = lean_ctor_get(x_22, 4); +x_87 = lean_ctor_get(x_22, 5); +lean_inc(x_87); +lean_inc(x_86); +lean_inc(x_85); +lean_inc(x_84); +lean_inc(x_83); +lean_dec(x_22); +x_88 = lean_box(0); +x_89 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_89, 0, x_83); +lean_ctor_set(x_89, 1, x_88); +lean_ctor_set(x_89, 2, x_84); +lean_ctor_set(x_89, 3, x_85); +lean_ctor_set(x_89, 4, x_86); +lean_ctor_set(x_89, 5, x_87); +x_90 = lean_st_ref_set(x_4, x_89, x_23); +x_91 = lean_ctor_get(x_90, 1); +lean_inc(x_91); +lean_dec(x_90); +x_92 = l_List_reverse___rarg(x_16); +x_93 = l_Lean_Elab_initFn____x40_Lean_Elab_Util___hyg_1077____closed__1; +lean_inc(x_8); +lean_inc(x_4); +x_94 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_1, x_2, x_93, x_92, x_88, x_3, x_4, x_5, x_6, x_7, x_8, x_91); +if (lean_obj_tag(x_94) == 0) +{ +lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; 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; uint8_t x_115; +x_95 = lean_ctor_get(x_94, 0); +lean_inc(x_95); +x_96 = lean_ctor_get(x_94, 1); +lean_inc(x_96); +lean_dec(x_94); +x_97 = lean_st_ref_get(x_8, x_96); +lean_dec(x_8); +x_98 = lean_ctor_get(x_97, 1); +lean_inc(x_98); +lean_dec(x_97); +x_99 = lean_st_ref_take(x_4, x_98); +x_100 = lean_ctor_get(x_99, 0); +lean_inc(x_100); +x_101 = lean_ctor_get(x_99, 1); +lean_inc(x_101); +lean_dec(x_99); +x_102 = lean_ctor_get(x_100, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_100, 1); +lean_inc(x_103); +x_104 = lean_ctor_get(x_100, 2); +lean_inc(x_104); +x_105 = lean_ctor_get(x_100, 3); +lean_inc(x_105); +x_106 = lean_ctor_get(x_100, 4); +lean_inc(x_106); +x_107 = lean_ctor_get(x_100, 5); +lean_inc(x_107); +if (lean_is_exclusive(x_100)) { + lean_ctor_release(x_100, 0); + lean_ctor_release(x_100, 1); + lean_ctor_release(x_100, 2); + lean_ctor_release(x_100, 3); + lean_ctor_release(x_100, 4); + lean_ctor_release(x_100, 5); + x_108 = x_100; +} else { + lean_dec_ref(x_100); + x_108 = lean_box(0); +} +lean_inc(x_95); +x_109 = l_List_append___rarg(x_103, x_95); +if (lean_is_scalar(x_108)) { + x_110 = lean_alloc_ctor(0, 6, 0); +} else { + x_110 = x_108; +} +lean_ctor_set(x_110, 0, x_102); +lean_ctor_set(x_110, 1, x_109); +lean_ctor_set(x_110, 2, x_104); +lean_ctor_set(x_110, 3, x_105); +lean_ctor_set(x_110, 4, x_106); +lean_ctor_set(x_110, 5, x_107); +x_111 = lean_st_ref_set(x_4, x_110, x_101); +lean_dec(x_4); +x_112 = lean_ctor_get(x_111, 1); +lean_inc(x_112); +if (lean_is_exclusive(x_111)) { + lean_ctor_release(x_111, 0); + lean_ctor_release(x_111, 1); + x_113 = x_111; +} else { + lean_dec_ref(x_111); + x_113 = lean_box(0); +} +x_114 = l_List_lengthAux___rarg(x_95, x_17); +lean_dec(x_95); +x_115 = lean_nat_dec_eq(x_18, x_114); +lean_dec(x_114); +lean_dec(x_18); +if (x_115 == 0) +{ +uint8_t x_116; lean_object* x_117; lean_object* x_118; +x_116 = 1; +x_117 = lean_box(x_116); +if (lean_is_scalar(x_113)) { + x_118 = lean_alloc_ctor(0, 2, 0); +} else { + x_118 = x_113; +} +lean_ctor_set(x_118, 0, x_117); +lean_ctor_set(x_118, 1, x_112); +return x_118; +} +else +{ +uint8_t x_119; lean_object* x_120; lean_object* x_121; +x_119 = 0; +x_120 = lean_box(x_119); +if (lean_is_scalar(x_113)) { + x_121 = lean_alloc_ctor(0, 2, 0); +} else { + x_121 = x_113; +} +lean_ctor_set(x_121, 0, x_120); +lean_ctor_set(x_121, 1, x_112); +return x_121; +} +} +else +{ +lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; +lean_dec(x_18); +lean_dec(x_8); +lean_dec(x_4); +x_122 = lean_ctor_get(x_94, 0); +lean_inc(x_122); +x_123 = lean_ctor_get(x_94, 1); +lean_inc(x_123); +if (lean_is_exclusive(x_94)) { + lean_ctor_release(x_94, 0); + lean_ctor_release(x_94, 1); + x_124 = x_94; +} else { + lean_dec_ref(x_94); + x_124 = lean_box(0); +} +if (lean_is_scalar(x_124)) { + x_125 = lean_alloc_ctor(1, 2, 0); +} else { + x_125 = x_124; +} +lean_ctor_set(x_125, 0, x_122); +lean_ctor_set(x_125, 1, x_123); +return x_125; +} +} +} +} +} +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(lean_object* x_1, uint8_t x_2, uint8_t x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +lean_object* x_11; lean_object* x_12; uint8_t x_13; +x_11 = lean_ctor_get(x_1, 1); +lean_inc(x_11); +x_12 = lean_ctor_get(x_1, 2); +lean_inc(x_12); +x_13 = !lean_is_exclusive(x_8); +if (x_13 == 0) +{ +lean_object* x_14; lean_object* x_15; +x_14 = lean_ctor_get(x_8, 3); +x_15 = l_Lean_replaceRef(x_11, x_14); +lean_dec(x_14); +lean_ctor_set(x_8, 3, x_15); +switch (lean_obj_tag(x_12)) { +case 0: +{ +lean_object* x_16; lean_object* x_17; +lean_dec(x_11); +x_16 = lean_ctor_get(x_1, 0); +lean_inc(x_16); +lean_dec(x_1); +x_17 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar(x_16, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_17; +} +case 1: +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; +lean_dec(x_11); +x_18 = lean_ctor_get(x_12, 0); +lean_inc(x_18); +x_19 = lean_ctor_get(x_12, 1); +lean_inc(x_19); +x_20 = lean_ctor_get(x_12, 2); +lean_inc(x_20); +x_21 = lean_ctor_get(x_12, 3); +lean_inc(x_21); +x_22 = lean_ctor_get(x_12, 4); +lean_inc(x_22); +x_23 = lean_ctor_get(x_12, 5); +lean_inc(x_23); +lean_dec(x_12); +x_24 = lean_ctor_get(x_1, 0); +lean_inc(x_24); +lean_dec(x_1); +x_25 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar(x_24, x_18, x_19, x_20, x_21, x_22, x_23, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_25; +} +case 2: +{ +lean_dec(x_11); +if (x_3 == 0) +{ +uint8_t x_26; lean_object* x_27; lean_object* x_28; +lean_dec(x_8); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_26 = 0; +x_27 = lean_box(x_26); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_10); +return x_28; +} +else +{ +lean_object* x_29; lean_object* x_30; uint8_t x_31; +x_29 = lean_ctor_get(x_12, 0); +lean_inc(x_29); +x_30 = lean_ctor_get(x_12, 1); +lean_inc(x_30); +lean_dec(x_12); +x_31 = !lean_is_exclusive(x_4); +if (x_31 == 0) +{ +lean_object* x_32; lean_object* x_33; lean_object* x_34; +x_32 = lean_ctor_get(x_4, 2); +lean_dec(x_32); +lean_ctor_set(x_4, 2, x_29); +x_33 = lean_ctor_get(x_1, 0); +lean_inc(x_33); +lean_dec(x_1); +x_34 = l_Lean_Elab_Term_runTactic(x_33, x_30, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_30); +if (lean_obj_tag(x_34) == 0) +{ +uint8_t x_35; +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) +{ +lean_object* x_36; uint8_t x_37; lean_object* x_38; +x_36 = lean_ctor_get(x_34, 0); +lean_dec(x_36); +x_37 = 1; +x_38 = lean_box(x_37); +lean_ctor_set(x_34, 0, x_38); +return x_34; +} +else +{ +lean_object* x_39; uint8_t x_40; lean_object* x_41; lean_object* x_42; +x_39 = lean_ctor_get(x_34, 1); +lean_inc(x_39); +lean_dec(x_34); +x_40 = 1; +x_41 = lean_box(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_39); +return x_42; +} +} +else +{ +uint8_t x_43; +x_43 = !lean_is_exclusive(x_34); +if (x_43 == 0) +{ +return x_34; +} +else +{ +lean_object* x_44; lean_object* x_45; lean_object* x_46; +x_44 = lean_ctor_get(x_34, 0); +x_45 = lean_ctor_get(x_34, 1); +lean_inc(x_45); +lean_inc(x_44); +lean_dec(x_34); +x_46 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_46, 0, x_44); +lean_ctor_set(x_46, 1, x_45); +return x_46; +} +} +} +else +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; uint8_t x_52; uint8_t x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; +x_47 = lean_ctor_get(x_4, 0); +x_48 = lean_ctor_get(x_4, 1); +x_49 = lean_ctor_get(x_4, 3); +x_50 = lean_ctor_get(x_4, 4); +x_51 = lean_ctor_get_uint8(x_4, sizeof(void*)*8); +x_52 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 1); +x_53 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 2); +x_54 = lean_ctor_get(x_4, 5); +x_55 = lean_ctor_get(x_4, 6); +x_56 = lean_ctor_get(x_4, 7); +lean_inc(x_56); +lean_inc(x_55); +lean_inc(x_54); +lean_inc(x_50); +lean_inc(x_49); +lean_inc(x_48); +lean_inc(x_47); +lean_dec(x_4); +x_57 = lean_alloc_ctor(0, 8, 3); +lean_ctor_set(x_57, 0, x_47); +lean_ctor_set(x_57, 1, x_48); +lean_ctor_set(x_57, 2, x_29); +lean_ctor_set(x_57, 3, x_49); +lean_ctor_set(x_57, 4, x_50); +lean_ctor_set(x_57, 5, x_54); +lean_ctor_set(x_57, 6, x_55); +lean_ctor_set(x_57, 7, x_56); +lean_ctor_set_uint8(x_57, sizeof(void*)*8, x_51); +lean_ctor_set_uint8(x_57, sizeof(void*)*8 + 1, x_52); +lean_ctor_set_uint8(x_57, sizeof(void*)*8 + 2, x_53); +x_58 = lean_ctor_get(x_1, 0); +lean_inc(x_58); +lean_dec(x_1); +x_59 = l_Lean_Elab_Term_runTactic(x_58, x_30, x_57, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_30); +if (lean_obj_tag(x_59) == 0) +{ +lean_object* x_60; lean_object* x_61; uint8_t x_62; lean_object* x_63; lean_object* x_64; +x_60 = lean_ctor_get(x_59, 1); +lean_inc(x_60); +if (lean_is_exclusive(x_59)) { + lean_ctor_release(x_59, 0); + lean_ctor_release(x_59, 1); + x_61 = x_59; +} else { + lean_dec_ref(x_59); + x_61 = lean_box(0); +} +x_62 = 1; +x_63 = lean_box(x_62); +if (lean_is_scalar(x_61)) { + x_64 = lean_alloc_ctor(0, 2, 0); +} else { + x_64 = x_61; +} +lean_ctor_set(x_64, 0, x_63); +lean_ctor_set(x_64, 1, x_60); +return x_64; +} +else +{ +lean_object* x_65; lean_object* x_66; lean_object* x_67; lean_object* x_68; +x_65 = lean_ctor_get(x_59, 0); +lean_inc(x_65); +x_66 = lean_ctor_get(x_59, 1); +lean_inc(x_66); +if (lean_is_exclusive(x_59)) { + lean_ctor_release(x_59, 0); + lean_ctor_release(x_59, 1); + x_67 = x_59; +} else { + lean_dec_ref(x_59); + x_67 = lean_box(0); +} +if (lean_is_scalar(x_67)) { + x_68 = lean_alloc_ctor(1, 2, 0); +} else { + x_68 = x_67; +} +lean_ctor_set(x_68, 0, x_65); +lean_ctor_set(x_68, 1, x_66); +return x_68; +} +} +} +} +default: +{ +lean_object* x_69; lean_object* x_70; lean_object* x_71; lean_object* x_72; +x_69 = lean_ctor_get(x_12, 0); +lean_inc(x_69); +x_70 = lean_ctor_get(x_12, 1); +lean_inc(x_70); +lean_dec(x_12); +x_71 = lean_ctor_get(x_1, 0); +lean_inc(x_71); +lean_dec(x_1); +x_72 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed(x_69, x_70, x_11, x_71, x_2, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_72; +} +} +} +else +{ +lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; +x_73 = lean_ctor_get(x_8, 0); +x_74 = lean_ctor_get(x_8, 1); +x_75 = lean_ctor_get(x_8, 2); +x_76 = lean_ctor_get(x_8, 3); +x_77 = lean_ctor_get(x_8, 4); +x_78 = lean_ctor_get(x_8, 5); +x_79 = lean_ctor_get(x_8, 6); +x_80 = lean_ctor_get(x_8, 7); +lean_inc(x_80); +lean_inc(x_79); +lean_inc(x_78); +lean_inc(x_77); +lean_inc(x_76); +lean_inc(x_75); +lean_inc(x_74); +lean_inc(x_73); +lean_dec(x_8); +x_81 = l_Lean_replaceRef(x_11, x_76); +lean_dec(x_76); +x_82 = lean_alloc_ctor(0, 8, 0); +lean_ctor_set(x_82, 0, x_73); +lean_ctor_set(x_82, 1, x_74); +lean_ctor_set(x_82, 2, x_75); +lean_ctor_set(x_82, 3, x_81); +lean_ctor_set(x_82, 4, x_77); +lean_ctor_set(x_82, 5, x_78); +lean_ctor_set(x_82, 6, x_79); +lean_ctor_set(x_82, 7, x_80); +switch (lean_obj_tag(x_12)) { +case 0: +{ +lean_object* x_83; lean_object* x_84; +lean_dec(x_11); +x_83 = lean_ctor_get(x_1, 0); +lean_inc(x_83); +lean_dec(x_1); +x_84 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingInstMVar(x_83, x_4, x_5, x_6, x_7, x_82, x_9, x_10); +return x_84; +} +case 1: +{ +lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; +lean_dec(x_11); +x_85 = lean_ctor_get(x_12, 0); +lean_inc(x_85); +x_86 = lean_ctor_get(x_12, 1); +lean_inc(x_86); +x_87 = lean_ctor_get(x_12, 2); +lean_inc(x_87); +x_88 = lean_ctor_get(x_12, 3); +lean_inc(x_88); +x_89 = lean_ctor_get(x_12, 4); +lean_inc(x_89); +x_90 = lean_ctor_get(x_12, 5); +lean_inc(x_90); +lean_dec(x_12); +x_91 = lean_ctor_get(x_1, 0); +lean_inc(x_91); +lean_dec(x_1); +x_92 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar(x_91, x_85, x_86, x_87, x_88, x_89, x_90, x_4, x_5, x_6, x_7, x_82, x_9, x_10); +return x_92; +} +case 2: +{ +lean_dec(x_11); +if (x_3 == 0) +{ +uint8_t x_93; lean_object* x_94; lean_object* x_95; +lean_dec(x_82); +lean_dec(x_12); +lean_dec(x_9); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_1); +x_93 = 0; +x_94 = lean_box(x_93); +x_95 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_95, 0, x_94); +lean_ctor_set(x_95, 1, x_10); +return x_95; +} +else +{ +lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; uint8_t x_102; uint8_t x_103; uint8_t x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; +x_96 = lean_ctor_get(x_12, 0); +lean_inc(x_96); +x_97 = lean_ctor_get(x_12, 1); +lean_inc(x_97); +lean_dec(x_12); +x_98 = lean_ctor_get(x_4, 0); +lean_inc(x_98); +x_99 = lean_ctor_get(x_4, 1); +lean_inc(x_99); +x_100 = lean_ctor_get(x_4, 3); +lean_inc(x_100); +x_101 = lean_ctor_get(x_4, 4); +lean_inc(x_101); +x_102 = lean_ctor_get_uint8(x_4, sizeof(void*)*8); +x_103 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 1); +x_104 = lean_ctor_get_uint8(x_4, sizeof(void*)*8 + 2); +x_105 = lean_ctor_get(x_4, 5); +lean_inc(x_105); +x_106 = lean_ctor_get(x_4, 6); +lean_inc(x_106); +x_107 = lean_ctor_get(x_4, 7); +lean_inc(x_107); +if (lean_is_exclusive(x_4)) { + lean_ctor_release(x_4, 0); + lean_ctor_release(x_4, 1); + lean_ctor_release(x_4, 2); + lean_ctor_release(x_4, 3); + lean_ctor_release(x_4, 4); + lean_ctor_release(x_4, 5); + lean_ctor_release(x_4, 6); + lean_ctor_release(x_4, 7); + x_108 = x_4; +} else { + lean_dec_ref(x_4); + x_108 = lean_box(0); +} +if (lean_is_scalar(x_108)) { + x_109 = lean_alloc_ctor(0, 8, 3); +} else { + x_109 = x_108; +} +lean_ctor_set(x_109, 0, x_98); +lean_ctor_set(x_109, 1, x_99); +lean_ctor_set(x_109, 2, x_96); +lean_ctor_set(x_109, 3, x_100); +lean_ctor_set(x_109, 4, x_101); +lean_ctor_set(x_109, 5, x_105); +lean_ctor_set(x_109, 6, x_106); +lean_ctor_set(x_109, 7, x_107); +lean_ctor_set_uint8(x_109, sizeof(void*)*8, x_102); +lean_ctor_set_uint8(x_109, sizeof(void*)*8 + 1, x_103); +lean_ctor_set_uint8(x_109, sizeof(void*)*8 + 2, x_104); +x_110 = lean_ctor_get(x_1, 0); +lean_inc(x_110); +lean_dec(x_1); +x_111 = l_Lean_Elab_Term_runTactic(x_110, x_97, x_109, x_5, x_6, x_7, x_82, x_9, x_10); +lean_dec(x_97); +if (lean_obj_tag(x_111) == 0) +{ +lean_object* x_112; lean_object* x_113; uint8_t x_114; lean_object* x_115; lean_object* x_116; +x_112 = lean_ctor_get(x_111, 1); +lean_inc(x_112); +if (lean_is_exclusive(x_111)) { + lean_ctor_release(x_111, 0); + lean_ctor_release(x_111, 1); + x_113 = x_111; +} else { + lean_dec_ref(x_111); + x_113 = lean_box(0); +} +x_114 = 1; +x_115 = lean_box(x_114); +if (lean_is_scalar(x_113)) { + x_116 = lean_alloc_ctor(0, 2, 0); +} else { + x_116 = x_113; +} +lean_ctor_set(x_116, 0, x_115); +lean_ctor_set(x_116, 1, x_112); +return x_116; +} +else +{ +lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; +x_117 = lean_ctor_get(x_111, 0); +lean_inc(x_117); +x_118 = lean_ctor_get(x_111, 1); +lean_inc(x_118); +if (lean_is_exclusive(x_111)) { + lean_ctor_release(x_111, 0); + lean_ctor_release(x_111, 1); + x_119 = x_111; +} else { + lean_dec_ref(x_111); + x_119 = lean_box(0); +} +if (lean_is_scalar(x_119)) { + x_120 = lean_alloc_ctor(1, 2, 0); +} else { + x_120 = x_119; +} +lean_ctor_set(x_120, 0, x_117); +lean_ctor_set(x_120, 1, x_118); +return x_120; +} +} +} +default: +{ +lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; +x_121 = lean_ctor_get(x_12, 0); +lean_inc(x_121); +x_122 = lean_ctor_get(x_12, 1); +lean_inc(x_122); +lean_dec(x_12); +x_123 = lean_ctor_get(x_1, 0); +lean_inc(x_123); +lean_dec(x_1); +x_124 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed(x_121, x_122, x_11, x_123, x_2, x_4, x_5, x_6, x_7, x_82, x_9, x_10); +return x_124; +} +} +} +} +} +lean_object* l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___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_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; +x_23 = lean_st_ref_get(x_8, x_9); +x_24 = lean_ctor_get(x_23, 1); +lean_inc(x_24); +lean_dec(x_23); +x_25 = lean_st_ref_get(x_4, x_24); +x_26 = lean_ctor_get(x_25, 0); +lean_inc(x_26); +x_27 = lean_ctor_get(x_26, 5); +lean_inc(x_27); +lean_dec(x_26); +x_28 = lean_ctor_get_uint8(x_27, sizeof(void*)*2); +lean_dec(x_27); +if (x_28 == 0) +{ +lean_object* x_29; lean_object* x_30; +lean_dec(x_1); +x_29 = lean_ctor_get(x_25, 1); +lean_inc(x_29); +lean_dec(x_25); +x_30 = lean_apply_7(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_29); +return x_30; +} +else +{ +lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; +x_31 = lean_ctor_get(x_25, 1); +lean_inc(x_31); +lean_dec(x_25); +x_32 = l___private_Lean_Elab_InfoTree_0__Lean_Elab_getResetInfoTrees___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__2___rarg(x_4, x_5, x_6, x_7, x_8, x_31); +x_33 = lean_ctor_get(x_32, 0); +lean_inc(x_33); +x_34 = lean_ctor_get(x_32, 1); +lean_inc(x_34); +lean_dec(x_32); +lean_inc(x_8); +lean_inc(x_4); +x_35 = lean_apply_7(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_34); +if (lean_obj_tag(x_35) == 0) +{ +lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; uint8_t x_44; +x_36 = lean_ctor_get(x_35, 0); +lean_inc(x_36); +x_37 = lean_ctor_get(x_35, 1); +lean_inc(x_37); +lean_dec(x_35); +x_38 = lean_st_ref_get(x_8, x_37); +lean_dec(x_8); +x_39 = lean_ctor_get(x_38, 1); +lean_inc(x_39); +lean_dec(x_38); +x_40 = lean_st_ref_take(x_4, x_39); +x_41 = lean_ctor_get(x_40, 0); +lean_inc(x_41); +x_42 = lean_ctor_get(x_41, 5); +lean_inc(x_42); +x_43 = lean_ctor_get(x_40, 1); +lean_inc(x_43); +lean_dec(x_40); +x_44 = !lean_is_exclusive(x_41); +if (x_44 == 0) +{ +lean_object* x_45; uint8_t x_46; +x_45 = lean_ctor_get(x_41, 5); +lean_dec(x_45); +x_46 = !lean_is_exclusive(x_42); +if (x_46 == 0) +{ +lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; uint8_t x_51; +x_47 = lean_ctor_get(x_42, 0); +x_48 = lean_ctor_get(x_42, 1); +x_49 = lean_ctor_get(x_48, 2); +lean_inc(x_49); +x_50 = lean_unsigned_to_nat(0u); +x_51 = lean_nat_dec_lt(x_50, x_49); +if (x_51 == 0) +{ +lean_object* x_52; uint8_t x_53; +lean_dec(x_49); +lean_dec(x_48); +lean_dec(x_1); +lean_ctor_set(x_42, 1, x_33); +x_52 = lean_st_ref_set(x_4, x_41, x_43); +lean_dec(x_4); +x_53 = !lean_is_exclusive(x_52); +if (x_53 == 0) +{ +lean_object* x_54; lean_object* x_55; lean_object* x_56; +x_54 = lean_ctor_get(x_52, 0); +lean_dec(x_54); +x_55 = lean_box(0); +x_56 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_56, 0, x_36); +lean_ctor_set(x_56, 1, x_55); +lean_ctor_set(x_52, 0, x_56); +x_10 = x_52; +goto block_22; +} +else +{ +lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; +x_57 = lean_ctor_get(x_52, 1); +lean_inc(x_57); +lean_dec(x_52); +x_58 = lean_box(0); +x_59 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_59, 0, x_36); +lean_ctor_set(x_59, 1, x_58); +x_60 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_60, 0, x_59); +lean_ctor_set(x_60, 1, x_57); +x_10 = x_60; +goto block_22; +} +} +else +{ +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_61 = lean_unsigned_to_nat(1u); +x_62 = lean_nat_sub(x_49, x_61); +lean_dec(x_49); +x_63 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_48, x_62); +lean_dec(x_62); +x_64 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_47, x_1, x_63); +lean_ctor_set(x_42, 1, x_33); +lean_ctor_set(x_42, 0, x_64); +x_65 = lean_st_ref_set(x_4, x_41, x_43); +lean_dec(x_4); +x_66 = !lean_is_exclusive(x_65); +if (x_66 == 0) +{ +lean_object* x_67; lean_object* x_68; lean_object* x_69; +x_67 = lean_ctor_get(x_65, 0); +lean_dec(x_67); +x_68 = lean_box(0); +x_69 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_69, 0, x_36); +lean_ctor_set(x_69, 1, x_68); +lean_ctor_set(x_65, 0, x_69); +x_10 = x_65; +goto block_22; +} +else +{ +lean_object* x_70; lean_object* x_71; lean_object* x_72; lean_object* x_73; +x_70 = lean_ctor_get(x_65, 1); +lean_inc(x_70); +lean_dec(x_65); +x_71 = lean_box(0); +x_72 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_72, 0, x_36); +lean_ctor_set(x_72, 1, x_71); +x_73 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_73, 0, x_72); +lean_ctor_set(x_73, 1, x_70); +x_10 = x_73; +goto block_22; +} +} +} +else +{ +uint8_t x_74; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; uint8_t x_79; +x_74 = lean_ctor_get_uint8(x_42, sizeof(void*)*2); +x_75 = lean_ctor_get(x_42, 0); +x_76 = lean_ctor_get(x_42, 1); +lean_inc(x_76); +lean_inc(x_75); +lean_dec(x_42); +x_77 = lean_ctor_get(x_76, 2); +lean_inc(x_77); +x_78 = lean_unsigned_to_nat(0u); +x_79 = lean_nat_dec_lt(x_78, x_77); +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; +lean_dec(x_77); +lean_dec(x_76); +lean_dec(x_1); +x_80 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_80, 0, x_75); +lean_ctor_set(x_80, 1, x_33); +lean_ctor_set_uint8(x_80, sizeof(void*)*2, x_74); +lean_ctor_set(x_41, 5, x_80); +x_81 = lean_st_ref_set(x_4, x_41, x_43); +lean_dec(x_4); +x_82 = lean_ctor_get(x_81, 1); +lean_inc(x_82); +if (lean_is_exclusive(x_81)) { + lean_ctor_release(x_81, 0); + lean_ctor_release(x_81, 1); + x_83 = x_81; +} else { + lean_dec_ref(x_81); + x_83 = lean_box(0); +} +x_84 = lean_box(0); +x_85 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_85, 0, x_36); +lean_ctor_set(x_85, 1, x_84); +if (lean_is_scalar(x_83)) { + x_86 = lean_alloc_ctor(0, 2, 0); +} else { + x_86 = x_83; +} +lean_ctor_set(x_86, 0, x_85); +lean_ctor_set(x_86, 1, x_82); +x_10 = x_86; +goto block_22; +} +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; lean_object* x_95; lean_object* x_96; lean_object* x_97; +x_87 = lean_unsigned_to_nat(1u); +x_88 = lean_nat_sub(x_77, x_87); +lean_dec(x_77); +x_89 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_76, x_88); +lean_dec(x_88); +x_90 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_75, x_1, x_89); +x_91 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_91, 0, x_90); +lean_ctor_set(x_91, 1, x_33); +lean_ctor_set_uint8(x_91, sizeof(void*)*2, x_74); +lean_ctor_set(x_41, 5, x_91); +x_92 = lean_st_ref_set(x_4, x_41, x_43); +lean_dec(x_4); +x_93 = lean_ctor_get(x_92, 1); +lean_inc(x_93); +if (lean_is_exclusive(x_92)) { + lean_ctor_release(x_92, 0); + lean_ctor_release(x_92, 1); + x_94 = x_92; +} else { + lean_dec_ref(x_92); + x_94 = lean_box(0); +} +x_95 = lean_box(0); +x_96 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_96, 0, x_36); +lean_ctor_set(x_96, 1, x_95); +if (lean_is_scalar(x_94)) { + x_97 = lean_alloc_ctor(0, 2, 0); +} else { + x_97 = x_94; +} +lean_ctor_set(x_97, 0, x_96); +lean_ctor_set(x_97, 1, x_93); +x_10 = x_97; +goto block_22; +} +} +} +else +{ +lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; uint8_t x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107; lean_object* x_108; uint8_t x_109; +x_98 = lean_ctor_get(x_41, 0); +x_99 = lean_ctor_get(x_41, 1); +x_100 = lean_ctor_get(x_41, 2); +x_101 = lean_ctor_get(x_41, 3); +x_102 = lean_ctor_get(x_41, 4); +lean_inc(x_102); +lean_inc(x_101); +lean_inc(x_100); +lean_inc(x_99); +lean_inc(x_98); +lean_dec(x_41); +x_103 = lean_ctor_get_uint8(x_42, sizeof(void*)*2); +x_104 = lean_ctor_get(x_42, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_42, 1); +lean_inc(x_105); +if (lean_is_exclusive(x_42)) { + lean_ctor_release(x_42, 0); + lean_ctor_release(x_42, 1); + x_106 = x_42; +} else { + lean_dec_ref(x_42); + x_106 = lean_box(0); +} +x_107 = lean_ctor_get(x_105, 2); +lean_inc(x_107); +x_108 = lean_unsigned_to_nat(0u); +x_109 = lean_nat_dec_lt(x_108, x_107); +if (x_109 == 0) +{ +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_dec(x_107); +lean_dec(x_105); +lean_dec(x_1); +if (lean_is_scalar(x_106)) { + x_110 = lean_alloc_ctor(0, 2, 1); +} else { + x_110 = x_106; +} +lean_ctor_set(x_110, 0, x_104); +lean_ctor_set(x_110, 1, x_33); +lean_ctor_set_uint8(x_110, sizeof(void*)*2, x_103); +x_111 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_111, 0, x_98); +lean_ctor_set(x_111, 1, x_99); +lean_ctor_set(x_111, 2, x_100); +lean_ctor_set(x_111, 3, x_101); +lean_ctor_set(x_111, 4, x_102); +lean_ctor_set(x_111, 5, x_110); +x_112 = lean_st_ref_set(x_4, x_111, x_43); +lean_dec(x_4); +x_113 = lean_ctor_get(x_112, 1); +lean_inc(x_113); +if (lean_is_exclusive(x_112)) { + lean_ctor_release(x_112, 0); + lean_ctor_release(x_112, 1); + x_114 = x_112; +} else { + lean_dec_ref(x_112); + x_114 = lean_box(0); +} +x_115 = lean_box(0); +x_116 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_116, 0, x_36); +lean_ctor_set(x_116, 1, x_115); +if (lean_is_scalar(x_114)) { + x_117 = lean_alloc_ctor(0, 2, 0); +} else { + x_117 = x_114; +} +lean_ctor_set(x_117, 0, x_116); +lean_ctor_set(x_117, 1, x_113); +x_10 = x_117; +goto block_22; +} +else +{ +lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; lean_object* x_128; lean_object* x_129; +x_118 = lean_unsigned_to_nat(1u); +x_119 = lean_nat_sub(x_107, x_118); +lean_dec(x_107); +x_120 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_105, x_119); +lean_dec(x_119); +x_121 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_104, x_1, x_120); +if (lean_is_scalar(x_106)) { + x_122 = lean_alloc_ctor(0, 2, 1); +} else { + x_122 = x_106; +} +lean_ctor_set(x_122, 0, x_121); +lean_ctor_set(x_122, 1, x_33); +lean_ctor_set_uint8(x_122, sizeof(void*)*2, x_103); +x_123 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_123, 0, x_98); +lean_ctor_set(x_123, 1, x_99); +lean_ctor_set(x_123, 2, x_100); +lean_ctor_set(x_123, 3, x_101); +lean_ctor_set(x_123, 4, x_102); +lean_ctor_set(x_123, 5, x_122); +x_124 = lean_st_ref_set(x_4, x_123, x_43); +lean_dec(x_4); +x_125 = lean_ctor_get(x_124, 1); +lean_inc(x_125); +if (lean_is_exclusive(x_124)) { + lean_ctor_release(x_124, 0); + lean_ctor_release(x_124, 1); + x_126 = x_124; +} else { + lean_dec_ref(x_124); + x_126 = lean_box(0); +} +x_127 = lean_box(0); +x_128 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_128, 0, x_36); +lean_ctor_set(x_128, 1, x_127); +if (lean_is_scalar(x_126)) { + x_129 = lean_alloc_ctor(0, 2, 0); +} else { + x_129 = x_126; +} +lean_ctor_set(x_129, 0, x_128); +lean_ctor_set(x_129, 1, x_125); +x_10 = x_129; +goto block_22; +} +} +} +else +{ +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; uint8_t x_138; +x_130 = lean_ctor_get(x_35, 0); +lean_inc(x_130); +x_131 = lean_ctor_get(x_35, 1); +lean_inc(x_131); +lean_dec(x_35); +x_132 = lean_st_ref_get(x_8, x_131); +lean_dec(x_8); +x_133 = lean_ctor_get(x_132, 1); +lean_inc(x_133); +lean_dec(x_132); +x_134 = lean_st_ref_take(x_4, x_133); +x_135 = lean_ctor_get(x_134, 0); +lean_inc(x_135); +x_136 = lean_ctor_get(x_135, 5); +lean_inc(x_136); +x_137 = lean_ctor_get(x_134, 1); +lean_inc(x_137); +lean_dec(x_134); +x_138 = !lean_is_exclusive(x_135); +if (x_138 == 0) +{ +lean_object* x_139; uint8_t x_140; +x_139 = lean_ctor_get(x_135, 5); +lean_dec(x_139); +x_140 = !lean_is_exclusive(x_136); +if (x_140 == 0) +{ +lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; uint8_t x_145; +x_141 = lean_ctor_get(x_136, 0); +x_142 = lean_ctor_get(x_136, 1); +x_143 = lean_ctor_get(x_142, 2); +lean_inc(x_143); +x_144 = lean_unsigned_to_nat(0u); +x_145 = lean_nat_dec_lt(x_144, x_143); +if (x_145 == 0) +{ +lean_object* x_146; uint8_t x_147; +lean_dec(x_143); +lean_dec(x_142); +lean_dec(x_1); +lean_ctor_set(x_136, 1, x_33); +x_146 = lean_st_ref_set(x_4, x_135, x_137); +lean_dec(x_4); +x_147 = !lean_is_exclusive(x_146); +if (x_147 == 0) +{ +lean_object* x_148; +x_148 = lean_ctor_get(x_146, 0); +lean_dec(x_148); +lean_ctor_set_tag(x_146, 1); +lean_ctor_set(x_146, 0, x_130); +x_10 = x_146; +goto block_22; +} +else +{ +lean_object* x_149; lean_object* x_150; +x_149 = lean_ctor_get(x_146, 1); +lean_inc(x_149); +lean_dec(x_146); +x_150 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_150, 0, x_130); +lean_ctor_set(x_150, 1, x_149); +x_10 = x_150; +goto block_22; +} +} +else +{ +lean_object* x_151; lean_object* x_152; lean_object* x_153; lean_object* x_154; lean_object* x_155; uint8_t x_156; +x_151 = lean_unsigned_to_nat(1u); +x_152 = lean_nat_sub(x_143, x_151); +lean_dec(x_143); +x_153 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_142, x_152); +lean_dec(x_152); +x_154 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_141, x_1, x_153); +lean_ctor_set(x_136, 1, x_33); +lean_ctor_set(x_136, 0, x_154); +x_155 = lean_st_ref_set(x_4, x_135, x_137); +lean_dec(x_4); +x_156 = !lean_is_exclusive(x_155); +if (x_156 == 0) +{ +lean_object* x_157; +x_157 = lean_ctor_get(x_155, 0); +lean_dec(x_157); +lean_ctor_set_tag(x_155, 1); +lean_ctor_set(x_155, 0, x_130); +x_10 = x_155; +goto block_22; +} +else +{ +lean_object* x_158; lean_object* x_159; +x_158 = lean_ctor_get(x_155, 1); +lean_inc(x_158); +lean_dec(x_155); +x_159 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_159, 0, x_130); +lean_ctor_set(x_159, 1, x_158); +x_10 = x_159; +goto block_22; +} +} +} +else +{ +uint8_t x_160; lean_object* x_161; lean_object* x_162; lean_object* x_163; lean_object* x_164; uint8_t x_165; +x_160 = lean_ctor_get_uint8(x_136, sizeof(void*)*2); +x_161 = lean_ctor_get(x_136, 0); +x_162 = lean_ctor_get(x_136, 1); +lean_inc(x_162); +lean_inc(x_161); +lean_dec(x_136); +x_163 = lean_ctor_get(x_162, 2); +lean_inc(x_163); +x_164 = lean_unsigned_to_nat(0u); +x_165 = lean_nat_dec_lt(x_164, x_163); +if (x_165 == 0) +{ +lean_object* x_166; lean_object* x_167; lean_object* x_168; lean_object* x_169; lean_object* x_170; +lean_dec(x_163); +lean_dec(x_162); +lean_dec(x_1); +x_166 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_166, 0, x_161); +lean_ctor_set(x_166, 1, x_33); +lean_ctor_set_uint8(x_166, sizeof(void*)*2, x_160); +lean_ctor_set(x_135, 5, x_166); +x_167 = lean_st_ref_set(x_4, x_135, x_137); +lean_dec(x_4); +x_168 = lean_ctor_get(x_167, 1); +lean_inc(x_168); +if (lean_is_exclusive(x_167)) { + lean_ctor_release(x_167, 0); + lean_ctor_release(x_167, 1); + x_169 = x_167; +} else { + lean_dec_ref(x_167); + 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_tag(x_170, 1); +} +lean_ctor_set(x_170, 0, x_130); +lean_ctor_set(x_170, 1, x_168); +x_10 = x_170; +goto block_22; +} +else +{ +lean_object* x_171; lean_object* x_172; lean_object* x_173; lean_object* x_174; lean_object* x_175; lean_object* x_176; lean_object* x_177; lean_object* x_178; lean_object* x_179; +x_171 = lean_unsigned_to_nat(1u); +x_172 = lean_nat_sub(x_163, x_171); +lean_dec(x_163); +x_173 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_162, x_172); +lean_dec(x_172); +x_174 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_161, x_1, x_173); +x_175 = lean_alloc_ctor(0, 2, 1); +lean_ctor_set(x_175, 0, x_174); +lean_ctor_set(x_175, 1, x_33); +lean_ctor_set_uint8(x_175, sizeof(void*)*2, x_160); +lean_ctor_set(x_135, 5, x_175); +x_176 = lean_st_ref_set(x_4, x_135, x_137); +lean_dec(x_4); +x_177 = lean_ctor_get(x_176, 1); +lean_inc(x_177); +if (lean_is_exclusive(x_176)) { + lean_ctor_release(x_176, 0); + lean_ctor_release(x_176, 1); + x_178 = x_176; +} else { + lean_dec_ref(x_176); + x_178 = lean_box(0); +} +if (lean_is_scalar(x_178)) { + x_179 = lean_alloc_ctor(1, 2, 0); +} else { + x_179 = x_178; + lean_ctor_set_tag(x_179, 1); +} +lean_ctor_set(x_179, 0, x_130); +lean_ctor_set(x_179, 1, x_177); +x_10 = x_179; +goto block_22; +} +} +} +else +{ +lean_object* x_180; lean_object* x_181; lean_object* x_182; lean_object* x_183; lean_object* x_184; uint8_t x_185; lean_object* x_186; lean_object* x_187; lean_object* x_188; lean_object* x_189; lean_object* x_190; uint8_t x_191; +x_180 = lean_ctor_get(x_135, 0); +x_181 = lean_ctor_get(x_135, 1); +x_182 = lean_ctor_get(x_135, 2); +x_183 = lean_ctor_get(x_135, 3); +x_184 = lean_ctor_get(x_135, 4); +lean_inc(x_184); +lean_inc(x_183); +lean_inc(x_182); +lean_inc(x_181); +lean_inc(x_180); +lean_dec(x_135); +x_185 = lean_ctor_get_uint8(x_136, sizeof(void*)*2); +x_186 = lean_ctor_get(x_136, 0); +lean_inc(x_186); +x_187 = lean_ctor_get(x_136, 1); +lean_inc(x_187); +if (lean_is_exclusive(x_136)) { + lean_ctor_release(x_136, 0); + lean_ctor_release(x_136, 1); + x_188 = x_136; +} else { + lean_dec_ref(x_136); + x_188 = lean_box(0); +} +x_189 = lean_ctor_get(x_187, 2); +lean_inc(x_189); +x_190 = lean_unsigned_to_nat(0u); +x_191 = lean_nat_dec_lt(x_190, x_189); +if (x_191 == 0) +{ +lean_object* x_192; lean_object* x_193; lean_object* x_194; lean_object* x_195; lean_object* x_196; lean_object* x_197; +lean_dec(x_189); +lean_dec(x_187); +lean_dec(x_1); +if (lean_is_scalar(x_188)) { + x_192 = lean_alloc_ctor(0, 2, 1); +} else { + x_192 = x_188; +} +lean_ctor_set(x_192, 0, x_186); +lean_ctor_set(x_192, 1, x_33); +lean_ctor_set_uint8(x_192, sizeof(void*)*2, x_185); +x_193 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_193, 0, x_180); +lean_ctor_set(x_193, 1, x_181); +lean_ctor_set(x_193, 2, x_182); +lean_ctor_set(x_193, 3, x_183); +lean_ctor_set(x_193, 4, x_184); +lean_ctor_set(x_193, 5, x_192); +x_194 = lean_st_ref_set(x_4, x_193, x_137); +lean_dec(x_4); +x_195 = lean_ctor_get(x_194, 1); +lean_inc(x_195); +if (lean_is_exclusive(x_194)) { + lean_ctor_release(x_194, 0); + lean_ctor_release(x_194, 1); + x_196 = x_194; +} else { + lean_dec_ref(x_194); + x_196 = lean_box(0); +} +if (lean_is_scalar(x_196)) { + x_197 = lean_alloc_ctor(1, 2, 0); +} else { + x_197 = x_196; + lean_ctor_set_tag(x_197, 1); +} +lean_ctor_set(x_197, 0, x_130); +lean_ctor_set(x_197, 1, x_195); +x_10 = x_197; +goto block_22; +} +else +{ +lean_object* x_198; lean_object* x_199; lean_object* x_200; lean_object* x_201; lean_object* x_202; lean_object* x_203; lean_object* x_204; lean_object* x_205; lean_object* x_206; lean_object* x_207; +x_198 = lean_unsigned_to_nat(1u); +x_199 = lean_nat_sub(x_189, x_198); +lean_dec(x_189); +x_200 = l_Std_PersistentArray_get_x21___at_Lean_Elab_withInfoHole___spec__1(x_187, x_199); +lean_dec(x_199); +x_201 = l_Std_PersistentHashMap_insert___at_Lean_Elab_assignInfoHoleId___spec__1(x_186, x_1, x_200); +if (lean_is_scalar(x_188)) { + x_202 = lean_alloc_ctor(0, 2, 1); +} else { + x_202 = x_188; +} +lean_ctor_set(x_202, 0, x_201); +lean_ctor_set(x_202, 1, x_33); +lean_ctor_set_uint8(x_202, sizeof(void*)*2, x_185); +x_203 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_203, 0, x_180); +lean_ctor_set(x_203, 1, x_181); +lean_ctor_set(x_203, 2, x_182); +lean_ctor_set(x_203, 3, x_183); +lean_ctor_set(x_203, 4, x_184); +lean_ctor_set(x_203, 5, x_202); +x_204 = lean_st_ref_set(x_4, x_203, x_137); +lean_dec(x_4); +x_205 = lean_ctor_get(x_204, 1); +lean_inc(x_205); +if (lean_is_exclusive(x_204)) { + lean_ctor_release(x_204, 0); + lean_ctor_release(x_204, 1); + x_206 = x_204; +} else { + lean_dec_ref(x_204); + x_206 = lean_box(0); +} +if (lean_is_scalar(x_206)) { + x_207 = lean_alloc_ctor(1, 2, 0); +} else { + x_207 = x_206; + lean_ctor_set_tag(x_207, 1); +} +lean_ctor_set(x_207, 0, x_130); +lean_ctor_set(x_207, 1, x_205); +x_10 = x_207; +goto block_22; +} +} +} +} +block_22: +{ +if (lean_obj_tag(x_10) == 0) +{ +uint8_t x_11; +x_11 = !lean_is_exclusive(x_10); +if (x_11 == 0) +{ +lean_object* x_12; lean_object* x_13; +x_12 = lean_ctor_get(x_10, 0); +x_13 = lean_ctor_get(x_12, 0); +lean_inc(x_13); +lean_dec(x_12); +lean_ctor_set(x_10, 0, x_13); +return x_10; +} +else +{ +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; +x_14 = lean_ctor_get(x_10, 0); +x_15 = lean_ctor_get(x_10, 1); +lean_inc(x_15); +lean_inc(x_14); +lean_dec(x_10); +x_16 = lean_ctor_get(x_14, 0); +lean_inc(x_16); +lean_dec(x_14); +x_17 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +return x_17; +} +} +else +{ +uint8_t x_18; +x_18 = !lean_is_exclusive(x_10); +if (x_18 == 0) +{ +return x_10; +} +else +{ +lean_object* x_19; lean_object* x_20; lean_object* x_21; +x_19 = lean_ctor_get(x_10, 0); +x_20 = lean_ctor_get(x_10, 1); +lean_inc(x_20); +lean_inc(x_19); +lean_dec(x_10); +x_21 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_21, 0, x_19); +lean_ctor_set(x_21, 1, x_20); +return x_21; +} +} +} +} +} +lean_object* l_Lean_Elab_Term_runTactic___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Elab_Tactic_getUnsolvedGoals(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_11; +} +} +static lean_object* _init_l_Lean_Elab_Term_runTactic___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Term_runTactic___lambda__1___boxed), 10, 0); +return x_1; +} +} +lean_object* l_Lean_Elab_Term_runTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17; +x_10 = lean_unsigned_to_nat(1u); +x_11 = l_Lean_Syntax_getArg(x_2, x_10); +x_12 = lean_st_ref_get(x_8, x_9); +x_13 = lean_ctor_get(x_12, 1); +lean_inc(x_13); +lean_dec(x_12); +x_14 = lean_st_ref_take(x_6, x_13); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); +lean_inc(x_16); +lean_dec(x_14); +x_17 = !lean_is_exclusive(x_15); +if (x_17 == 0) +{ +lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +x_18 = lean_ctor_get(x_15, 0); +lean_inc(x_1); +x_19 = l_Lean_MetavarContext_instantiateMVarDeclMVars(x_18, x_1); +lean_ctor_set(x_15, 0, x_19); +x_20 = lean_st_ref_set(x_6, x_15, x_16); +x_21 = lean_ctor_get(x_20, 1); +lean_inc(x_21); +lean_dec(x_20); +x_22 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalTactic), 10, 1); +lean_closure_set(x_22, 0, x_11); +x_23 = l_Lean_Elab_Term_runTactic___closed__1; +x_24 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); +lean_closure_set(x_24, 0, x_22); +lean_closure_set(x_24, 1, x_23); +lean_inc(x_1); +x_25 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 2); +lean_closure_set(x_25, 0, x_1); +lean_closure_set(x_25, 1, x_24); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_26 = l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___spec__1(x_1, x_25, x_3, x_4, x_5, x_6, x_7, x_8, x_21); +if (lean_obj_tag(x_26) == 0) +{ +uint8_t x_27; +x_27 = !lean_is_exclusive(x_26); +if (x_27 == 0) +{ +lean_object* x_28; lean_object* x_29; uint8_t x_30; +x_28 = lean_ctor_get(x_26, 0); +x_29 = lean_ctor_get(x_26, 1); +x_30 = l_List_isEmpty___rarg(x_28); +if (x_30 == 0) +{ +lean_object* x_31; +lean_free_object(x_26); +x_31 = l_Lean_Elab_Term_reportUnsolvedGoals(x_28, x_3, x_4, x_5, x_6, x_7, x_8, x_29); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_31; +} +else +{ +lean_object* x_32; +lean_dec(x_28); +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_32 = lean_box(0); +lean_ctor_set(x_26, 0, x_32); +return x_26; +} +} +else +{ +lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_33 = lean_ctor_get(x_26, 0); +x_34 = lean_ctor_get(x_26, 1); +lean_inc(x_34); +lean_inc(x_33); +lean_dec(x_26); +x_35 = l_List_isEmpty___rarg(x_33); +if (x_35 == 0) +{ +lean_object* x_36; +x_36 = l_Lean_Elab_Term_reportUnsolvedGoals(x_33, x_3, x_4, x_5, x_6, x_7, x_8, x_34); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_36; +} +else +{ +lean_object* x_37; lean_object* x_38; +lean_dec(x_33); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +x_37 = lean_box(0); +x_38 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_38, 0, x_37); +lean_ctor_set(x_38, 1, x_34); +return x_38; +} +} +} +else +{ +uint8_t x_39; +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_26); +if (x_39 == 0) +{ +return x_26; +} +else +{ +lean_object* x_40; lean_object* x_41; lean_object* x_42; +x_40 = lean_ctor_get(x_26, 0); +x_41 = lean_ctor_get(x_26, 1); +lean_inc(x_41); +lean_inc(x_40); +lean_dec(x_26); +x_42 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_42, 0, x_40); +lean_ctor_set(x_42, 1, x_41); +return x_42; +} +} +} +else +{ +lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; +x_43 = lean_ctor_get(x_15, 0); +x_44 = lean_ctor_get(x_15, 1); +x_45 = lean_ctor_get(x_15, 2); +x_46 = lean_ctor_get(x_15, 3); +lean_inc(x_46); +lean_inc(x_45); +lean_inc(x_44); +lean_inc(x_43); +lean_dec(x_15); +lean_inc(x_1); +x_47 = l_Lean_MetavarContext_instantiateMVarDeclMVars(x_43, x_1); +x_48 = lean_alloc_ctor(0, 4, 0); +lean_ctor_set(x_48, 0, x_47); +lean_ctor_set(x_48, 1, x_44); +lean_ctor_set(x_48, 2, x_45); +lean_ctor_set(x_48, 3, x_46); +x_49 = lean_st_ref_set(x_6, x_48, x_16); +x_50 = lean_ctor_get(x_49, 1); +lean_inc(x_50); +lean_dec(x_49); +x_51 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalTactic), 10, 1); +lean_closure_set(x_51, 0, x_11); +x_52 = l_Lean_Elab_Term_runTactic___closed__1; +x_53 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); +lean_closure_set(x_53, 0, x_51); +lean_closure_set(x_53, 1, x_52); +lean_inc(x_1); +x_54 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 2); +lean_closure_set(x_54, 0, x_1); +lean_closure_set(x_54, 1, x_53); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_3); +x_55 = l_Lean_Elab_withInfoHole___at_Lean_Elab_Term_runTactic___spec__1(x_1, x_54, x_3, x_4, x_5, x_6, x_7, x_8, x_50); +if (lean_obj_tag(x_55) == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; uint8_t x_59; +x_56 = lean_ctor_get(x_55, 0); +lean_inc(x_56); +x_57 = lean_ctor_get(x_55, 1); +lean_inc(x_57); +if (lean_is_exclusive(x_55)) { + lean_ctor_release(x_55, 0); + lean_ctor_release(x_55, 1); + x_58 = x_55; +} else { + lean_dec_ref(x_55); + x_58 = lean_box(0); +} +x_59 = l_List_isEmpty___rarg(x_56); +if (x_59 == 0) +{ +lean_object* x_60; +lean_dec(x_58); +x_60 = l_Lean_Elab_Term_reportUnsolvedGoals(x_56, x_3, x_4, x_5, x_6, x_7, x_8, x_57); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +return x_60; +} +else +{ +lean_object* x_61; lean_object* x_62; +lean_dec(x_56); +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_61 = lean_box(0); +if (lean_is_scalar(x_58)) { + x_62 = lean_alloc_ctor(0, 2, 0); +} else { + x_62 = x_58; +} +lean_ctor_set(x_62, 0, x_61); +lean_ctor_set(x_62, 1, x_57); +return x_62; +} +} +else +{ +lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +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_63 = lean_ctor_get(x_55, 0); +lean_inc(x_63); +x_64 = lean_ctor_get(x_55, 1); +lean_inc(x_64); +if (lean_is_exclusive(x_55)) { + lean_ctor_release(x_55, 0); + lean_ctor_release(x_55, 1); + x_65 = x_55; +} else { + lean_dec_ref(x_55); + x_65 = lean_box(0); +} +if (lean_is_scalar(x_65)) { + x_66 = lean_alloc_ctor(1, 2, 0); +} else { + x_66 = x_65; +} +lean_ctor_set(x_66, 0, x_63); +lean_ctor_set(x_66, 1, x_64); +return x_66; +} +} +} +} +lean_object* l_Lean_Elab_Term_liftTacticElabM___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_24; lean_object* x_25; lean_object* x_26; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; uint8_t x_55; +x_24 = lean_ctor_get(x_3, 1); +x_50 = lean_st_ref_get(x_9, x_10); +x_51 = lean_ctor_get(x_50, 1); +lean_inc(x_51); +lean_dec(x_50); +x_52 = lean_st_ref_take(x_5, x_51); +x_53 = lean_ctor_get(x_52, 0); +lean_inc(x_53); +x_54 = lean_ctor_get(x_52, 1); +lean_inc(x_54); +lean_dec(x_52); +x_55 = !lean_is_exclusive(x_53); +if (x_55 == 0) +{ +lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_56 = lean_ctor_get(x_53, 1); +lean_dec(x_56); +x_57 = lean_box(0); +lean_ctor_set(x_53, 1, x_57); +x_58 = lean_st_ref_set(x_5, x_53, x_54); +x_59 = lean_ctor_get(x_58, 1); +lean_inc(x_59); +lean_dec(x_58); +lean_inc(x_1); +x_60 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_60, 0, x_1); +lean_ctor_set(x_60, 1, x_57); +x_61 = lean_st_ref_get(x_9, x_59); +x_62 = lean_ctor_get(x_61, 1); +lean_inc(x_62); +lean_dec(x_61); +x_63 = lean_st_mk_ref(x_60, x_62); +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_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_64); +x_66 = lean_apply_9(x_2, x_1, x_64, x_4, x_5, x_6, x_7, x_8, x_9, 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; uint8_t x_73; lean_object* x_74; lean_object* x_75; +x_67 = lean_ctor_get(x_66, 0); +lean_inc(x_67); +x_68 = lean_ctor_get(x_66, 1); +lean_inc(x_68); +lean_dec(x_66); +x_69 = lean_st_ref_get(x_9, x_68); +x_70 = lean_ctor_get(x_69, 1); +lean_inc(x_70); +lean_dec(x_69); +x_71 = lean_st_ref_get(x_64, x_70); +lean_dec(x_64); +x_72 = lean_ctor_get(x_71, 1); +lean_inc(x_72); +lean_dec(x_71); +x_73 = 0; +x_74 = lean_box(0); +lean_inc(x_9); +lean_inc(x_5); +x_75 = l_Lean_Elab_Term_synthesizeSyntheticMVars_loop(x_73, x_74, x_4, x_5, x_6, x_7, x_8, x_9, x_72); +if (lean_obj_tag(x_75) == 0) +{ +lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; uint8_t x_82; +x_76 = lean_ctor_get(x_75, 1); +lean_inc(x_76); +lean_dec(x_75); +x_77 = lean_st_ref_get(x_9, x_76); +lean_dec(x_9); +x_78 = lean_ctor_get(x_77, 1); +lean_inc(x_78); +lean_dec(x_77); +x_79 = lean_st_ref_take(x_5, x_78); +x_80 = lean_ctor_get(x_79, 0); +lean_inc(x_80); +x_81 = lean_ctor_get(x_79, 1); +lean_inc(x_81); +lean_dec(x_79); +x_82 = !lean_is_exclusive(x_80); +if (x_82 == 0) +{ +lean_object* x_83; lean_object* x_84; uint8_t x_85; +x_83 = lean_ctor_get(x_80, 1); +lean_dec(x_83); +lean_inc(x_24); +lean_ctor_set(x_80, 1, x_24); +x_84 = lean_st_ref_set(x_5, x_80, x_81); +lean_dec(x_5); +x_85 = !lean_is_exclusive(x_84); +if (x_85 == 0) +{ +lean_object* x_86; lean_object* x_87; +x_86 = lean_ctor_get(x_84, 0); +lean_dec(x_86); +x_87 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_87, 0, x_67); +lean_ctor_set(x_87, 1, x_74); +lean_ctor_set(x_84, 0, x_87); +x_11 = x_84; +goto block_23; +} +else +{ +lean_object* x_88; lean_object* x_89; lean_object* x_90; +x_88 = lean_ctor_get(x_84, 1); +lean_inc(x_88); +lean_dec(x_84); +x_89 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_89, 0, x_67); +lean_ctor_set(x_89, 1, x_74); +x_90 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_90, 0, x_89); +lean_ctor_set(x_90, 1, x_88); +x_11 = x_90; +goto block_23; +} +} +else +{ +lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101; +x_91 = lean_ctor_get(x_80, 0); +x_92 = lean_ctor_get(x_80, 2); +x_93 = lean_ctor_get(x_80, 3); +x_94 = lean_ctor_get(x_80, 4); +x_95 = lean_ctor_get(x_80, 5); +lean_inc(x_95); +lean_inc(x_94); +lean_inc(x_93); +lean_inc(x_92); +lean_inc(x_91); +lean_dec(x_80); +lean_inc(x_24); +x_96 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_96, 0, x_91); +lean_ctor_set(x_96, 1, x_24); +lean_ctor_set(x_96, 2, x_92); +lean_ctor_set(x_96, 3, x_93); +lean_ctor_set(x_96, 4, x_94); +lean_ctor_set(x_96, 5, x_95); +x_97 = lean_st_ref_set(x_5, x_96, x_81); +lean_dec(x_5); +x_98 = lean_ctor_get(x_97, 1); +lean_inc(x_98); +if (lean_is_exclusive(x_97)) { + lean_ctor_release(x_97, 0); + lean_ctor_release(x_97, 1); + x_99 = x_97; +} else { + lean_dec_ref(x_97); + x_99 = lean_box(0); +} +x_100 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_100, 0, x_67); +lean_ctor_set(x_100, 1, x_74); +if (lean_is_scalar(x_99)) { + x_101 = lean_alloc_ctor(0, 2, 0); +} else { + x_101 = x_99; +} +lean_ctor_set(x_101, 0, x_100); +lean_ctor_set(x_101, 1, x_98); +x_11 = x_101; +goto block_23; +} +} +else +{ +lean_object* x_102; lean_object* x_103; +lean_dec(x_67); +x_102 = lean_ctor_get(x_75, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_75, 1); +lean_inc(x_103); +lean_dec(x_75); +x_25 = x_102; +x_26 = x_103; +goto block_49; +} +} +else +{ +lean_object* x_104; lean_object* x_105; +lean_dec(x_64); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +x_104 = lean_ctor_get(x_66, 0); +lean_inc(x_104); +x_105 = lean_ctor_get(x_66, 1); +lean_inc(x_105); +lean_dec(x_66); +x_25 = x_104; +x_26 = x_105; +goto block_49; +} +} +else +{ +lean_object* x_106; lean_object* x_107; lean_object* x_108; lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; 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; +x_106 = lean_ctor_get(x_53, 0); +x_107 = lean_ctor_get(x_53, 2); +x_108 = lean_ctor_get(x_53, 3); +x_109 = lean_ctor_get(x_53, 4); +x_110 = lean_ctor_get(x_53, 5); +lean_inc(x_110); +lean_inc(x_109); +lean_inc(x_108); +lean_inc(x_107); +lean_inc(x_106); +lean_dec(x_53); +x_111 = lean_box(0); +x_112 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_112, 0, x_106); +lean_ctor_set(x_112, 1, x_111); +lean_ctor_set(x_112, 2, x_107); +lean_ctor_set(x_112, 3, x_108); +lean_ctor_set(x_112, 4, x_109); +lean_ctor_set(x_112, 5, x_110); +x_113 = lean_st_ref_set(x_5, x_112, x_54); +x_114 = lean_ctor_get(x_113, 1); +lean_inc(x_114); +lean_dec(x_113); +lean_inc(x_1); +x_115 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_115, 0, x_1); +lean_ctor_set(x_115, 1, x_111); +x_116 = lean_st_ref_get(x_9, x_114); +x_117 = lean_ctor_get(x_116, 1); +lean_inc(x_117); +lean_dec(x_116); +x_118 = lean_st_mk_ref(x_115, x_117); +x_119 = lean_ctor_get(x_118, 0); +lean_inc(x_119); +x_120 = lean_ctor_get(x_118, 1); +lean_inc(x_120); +lean_dec(x_118); +lean_inc(x_9); +lean_inc(x_8); +lean_inc(x_7); +lean_inc(x_6); +lean_inc(x_5); +lean_inc(x_4); +lean_inc(x_119); +x_121 = lean_apply_9(x_2, x_1, x_119, x_4, x_5, x_6, x_7, x_8, x_9, x_120); +if (lean_obj_tag(x_121) == 0) +{ +lean_object* x_122; lean_object* x_123; lean_object* x_124; lean_object* x_125; lean_object* x_126; lean_object* x_127; uint8_t x_128; lean_object* x_129; lean_object* x_130; +x_122 = lean_ctor_get(x_121, 0); +lean_inc(x_122); +x_123 = lean_ctor_get(x_121, 1); +lean_inc(x_123); +lean_dec(x_121); +x_124 = lean_st_ref_get(x_9, x_123); +x_125 = lean_ctor_get(x_124, 1); +lean_inc(x_125); +lean_dec(x_124); +x_126 = lean_st_ref_get(x_119, x_125); +lean_dec(x_119); +x_127 = lean_ctor_get(x_126, 1); +lean_inc(x_127); +lean_dec(x_126); +x_128 = 0; +x_129 = lean_box(0); +lean_inc(x_9); +lean_inc(x_5); +x_130 = l_Lean_Elab_Term_synthesizeSyntheticMVars_loop(x_128, x_129, x_4, x_5, x_6, x_7, x_8, x_9, x_127); +if (lean_obj_tag(x_130) == 0) +{ +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; lean_object* x_141; lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145; lean_object* x_146; lean_object* x_147; lean_object* x_148; +x_131 = lean_ctor_get(x_130, 1); +lean_inc(x_131); +lean_dec(x_130); +x_132 = lean_st_ref_get(x_9, x_131); +lean_dec(x_9); +x_133 = lean_ctor_get(x_132, 1); +lean_inc(x_133); +lean_dec(x_132); +x_134 = lean_st_ref_take(x_5, x_133); +x_135 = lean_ctor_get(x_134, 0); +lean_inc(x_135); +x_136 = lean_ctor_get(x_134, 1); +lean_inc(x_136); +lean_dec(x_134); +x_137 = lean_ctor_get(x_135, 0); +lean_inc(x_137); +x_138 = lean_ctor_get(x_135, 2); +lean_inc(x_138); +x_139 = lean_ctor_get(x_135, 3); +lean_inc(x_139); +x_140 = lean_ctor_get(x_135, 4); +lean_inc(x_140); +x_141 = lean_ctor_get(x_135, 5); +lean_inc(x_141); +if (lean_is_exclusive(x_135)) { + lean_ctor_release(x_135, 0); + lean_ctor_release(x_135, 1); + lean_ctor_release(x_135, 2); + lean_ctor_release(x_135, 3); + lean_ctor_release(x_135, 4); + lean_ctor_release(x_135, 5); + x_142 = x_135; +} else { + lean_dec_ref(x_135); + x_142 = lean_box(0); +} +lean_inc(x_24); +if (lean_is_scalar(x_142)) { + x_143 = lean_alloc_ctor(0, 6, 0); +} else { + x_143 = x_142; +} +lean_ctor_set(x_143, 0, x_137); +lean_ctor_set(x_143, 1, x_24); +lean_ctor_set(x_143, 2, x_138); +lean_ctor_set(x_143, 3, x_139); +lean_ctor_set(x_143, 4, x_140); +lean_ctor_set(x_143, 5, x_141); +x_144 = lean_st_ref_set(x_5, x_143, x_136); +lean_dec(x_5); +x_145 = lean_ctor_get(x_144, 1); +lean_inc(x_145); +if (lean_is_exclusive(x_144)) { + lean_ctor_release(x_144, 0); + lean_ctor_release(x_144, 1); + x_146 = x_144; +} else { + lean_dec_ref(x_144); + x_146 = lean_box(0); +} +x_147 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_147, 0, x_122); +lean_ctor_set(x_147, 1, x_129); +if (lean_is_scalar(x_146)) { + x_148 = lean_alloc_ctor(0, 2, 0); +} else { + x_148 = x_146; +} +lean_ctor_set(x_148, 0, x_147); +lean_ctor_set(x_148, 1, x_145); +x_11 = x_148; +goto block_23; +} +else +{ +lean_object* x_149; lean_object* x_150; +lean_dec(x_122); +x_149 = lean_ctor_get(x_130, 0); +lean_inc(x_149); +x_150 = lean_ctor_get(x_130, 1); +lean_inc(x_150); +lean_dec(x_130); +x_25 = x_149; +x_26 = x_150; +goto block_49; +} +} +else +{ +lean_object* x_151; lean_object* x_152; +lean_dec(x_119); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_4); +x_151 = lean_ctor_get(x_121, 0); +lean_inc(x_151); +x_152 = lean_ctor_get(x_121, 1); +lean_inc(x_152); +lean_dec(x_121); +x_25 = x_151; +x_26 = x_152; +goto block_49; +} +} +block_23: +{ +if (lean_obj_tag(x_11) == 0) +{ +uint8_t x_12; +x_12 = !lean_is_exclusive(x_11); +if (x_12 == 0) +{ +lean_object* x_13; lean_object* x_14; +x_13 = lean_ctor_get(x_11, 0); +x_14 = lean_ctor_get(x_13, 0); +lean_inc(x_14); +lean_dec(x_13); +lean_ctor_set(x_11, 0, x_14); +return x_11; +} +else +{ +lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; +x_15 = lean_ctor_get(x_11, 0); +x_16 = lean_ctor_get(x_11, 1); +lean_inc(x_16); +lean_inc(x_15); +lean_dec(x_11); +x_17 = lean_ctor_get(x_15, 0); +lean_inc(x_17); +lean_dec(x_15); +x_18 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_18, 0, x_17); +lean_ctor_set(x_18, 1, x_16); +return x_18; +} +} +else +{ +uint8_t x_19; +x_19 = !lean_is_exclusive(x_11); +if (x_19 == 0) +{ +return x_11; +} +else +{ +lean_object* x_20; lean_object* x_21; lean_object* x_22; +x_20 = lean_ctor_get(x_11, 0); +x_21 = lean_ctor_get(x_11, 1); +lean_inc(x_21); +lean_inc(x_20); +lean_dec(x_11); +x_22 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +} +block_49: +{ +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_27 = lean_st_ref_get(x_9, x_26); +lean_dec(x_9); +x_28 = lean_ctor_get(x_27, 1); +lean_inc(x_28); +lean_dec(x_27); +x_29 = lean_st_ref_take(x_5, x_28); +x_30 = lean_ctor_get(x_29, 0); +lean_inc(x_30); +x_31 = lean_ctor_get(x_29, 1); +lean_inc(x_31); +lean_dec(x_29); +x_32 = !lean_is_exclusive(x_30); +if (x_32 == 0) +{ +lean_object* x_33; lean_object* x_34; uint8_t x_35; +x_33 = lean_ctor_get(x_30, 1); +lean_dec(x_33); +lean_inc(x_24); +lean_ctor_set(x_30, 1, x_24); +x_34 = lean_st_ref_set(x_5, x_30, x_31); +lean_dec(x_5); +x_35 = !lean_is_exclusive(x_34); +if (x_35 == 0) +{ +lean_object* x_36; +x_36 = lean_ctor_get(x_34, 0); +lean_dec(x_36); +lean_ctor_set_tag(x_34, 1); +lean_ctor_set(x_34, 0, x_25); +x_11 = x_34; +goto block_23; +} +else +{ +lean_object* x_37; lean_object* x_38; +x_37 = lean_ctor_get(x_34, 1); +lean_inc(x_37); +lean_dec(x_34); +x_38 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_38, 0, x_25); +lean_ctor_set(x_38, 1, x_37); +x_11 = x_38; +goto block_23; +} +} +else +{ +lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; +x_39 = lean_ctor_get(x_30, 0); +x_40 = lean_ctor_get(x_30, 2); +x_41 = lean_ctor_get(x_30, 3); +x_42 = lean_ctor_get(x_30, 4); +x_43 = lean_ctor_get(x_30, 5); +lean_inc(x_43); +lean_inc(x_42); +lean_inc(x_41); +lean_inc(x_40); +lean_inc(x_39); +lean_dec(x_30); +lean_inc(x_24); +x_44 = lean_alloc_ctor(0, 6, 0); +lean_ctor_set(x_44, 0, x_39); +lean_ctor_set(x_44, 1, x_24); +lean_ctor_set(x_44, 2, x_40); +lean_ctor_set(x_44, 3, x_41); +lean_ctor_set(x_44, 4, x_42); +lean_ctor_set(x_44, 5, x_43); +x_45 = lean_st_ref_set(x_5, x_44, x_31); +lean_dec(x_5); +x_46 = lean_ctor_get(x_45, 1); +lean_inc(x_46); +if (lean_is_exclusive(x_45)) { + lean_ctor_release(x_45, 0); + lean_ctor_release(x_45, 1); + x_47 = x_45; +} else { + lean_dec_ref(x_45); + x_47 = lean_box(0); +} +if (lean_is_scalar(x_47)) { + x_48 = lean_alloc_ctor(1, 2, 0); +} else { + x_48 = x_47; + lean_ctor_set_tag(x_48, 1); +} +lean_ctor_set(x_48, 0, x_25); +lean_ctor_set(x_48, 1, x_46); +x_11 = x_48; +goto block_23; +} +} +} +} +lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +_start: +{ +lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; +lean_inc(x_1); +x_10 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1___boxed), 10, 2); +lean_closure_set(x_10, 0, x_1); +lean_closure_set(x_10, 1, x_2); +x_11 = l_Lean_Elab_Term_instMonadInfoTreeTermElabM___closed__1; +x_12 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg), 9, 2); +lean_closure_set(x_12, 0, x_11); +lean_closure_set(x_12, 1, x_10); +x_13 = l_Lean_Meta_withMVarContext___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___spec__3___rarg(x_1, x_12, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_13; +} +} +lean_object* l_Lean_Elab_Term_liftTacticElabM(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l_Lean_Elab_Term_liftTacticElabM___rarg), 9, 0); +return x_2; +} +} +lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +_start: +{ +lean_object* x_9; lean_object* x_10; +x_9 = lean_box(0); +x_10 = l_Lean_Elab_Term_synthesizeSyntheticMVars_loop(x_1, x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +return x_10; +} +} lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars_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: { @@ -10791,15 +10715,101 @@ lean_dec(x_2); return x_11; } } -lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) { +lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___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; lean_object* x_10; -x_9 = lean_box(0); -x_10 = l_Lean_Elab_Term_synthesizeSyntheticMVars_loop(x_1, x_9, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_object* x_9; +x_9 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +return x_9; +} +} +lean_object* l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11, lean_object* x_12) { +_start: +{ +uint8_t x_13; uint8_t x_14; lean_object* x_15; +x_13 = lean_unbox(x_1); +lean_dec(x_1); +x_14 = lean_unbox(x_2); +lean_dec(x_2); +x_15 = l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); +return x_15; +} +} +lean_object* l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2___boxed(lean_object* x_1) { +_start: +{ +uint8_t x_2; lean_object* x_3; +x_2 = lean_unbox(x_1); +lean_dec(x_1); +x_3 = l_Std_fmt___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__2(x_2); +return x_3; +} +} +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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; uint8_t x_11; lean_object* x_12; +x_10 = lean_unbox(x_1); +lean_dec(x_1); +x_11 = lean_unbox(x_2); +lean_dec(x_2); +x_12 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep(x_10, x_11, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +return x_12; +} +} +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +uint8_t x_11; uint8_t x_12; lean_object* x_13; +x_11 = lean_unbox(x_2); +lean_dec(x_2); +x_12 = lean_unbox(x_3); +lean_dec(x_3); +x_13 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVar(x_1, x_11, x_12, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_13; +} +} +lean_object* l_Lean_Elab_Term_runTactic___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Elab_Term_runTactic___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +lean_dec(x_6); +lean_dec(x_5); +lean_dec(x_4); +lean_dec(x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_11; +} +} +lean_object* l_Lean_Elab_Term_runTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_Elab_Term_runTactic(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +lean_dec(x_2); return x_10; } } +lean_object* l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +lean_object* x_11; +x_11 = l_Lean_Elab_Term_liftTacticElabM___rarg___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +lean_dec(x_3); +return x_11; +} +} lean_object* l_Lean_Elab_Term_synthesizeSyntheticMVars___boxed(lean_object* x_1, lean_object* x_2, 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: { @@ -11006,7 +11016,7 @@ return x_16; } } } -lean_object* l_Lean_Elab_Term_withSynthesize_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { if (lean_obj_tag(x_1) == 0) @@ -11035,15 +11045,15 @@ return x_9; } } } -lean_object* l_Lean_Elab_Term_withSynthesize_match__1(lean_object* x_1, lean_object* x_2) { +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp_match__1(lean_object* x_1, lean_object* x_2) { _start: { lean_object* x_3; -x_3 = lean_alloc_closure((void*)(l_Lean_Elab_Term_withSynthesize_match__1___rarg), 3, 0); +x_3 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp_match__1___rarg), 3, 0); return x_3; } } -lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_47; lean_object* x_48; lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; uint8_t x_80; @@ -11571,24 +11581,72 @@ return x_73; } } } -lean_object* l_Lean_Elab_Term_withSynthesize(lean_object* x_1) { +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp(lean_object* x_1) { _start: { lean_object* x_2; -x_2 = lean_alloc_closure((void*)(l_Lean_Elab_Term_withSynthesize___rarg___boxed), 9, 0); +x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg___boxed), 9, 0); return x_2; } } -lean_object* l_Lean_Elab_Term_withSynthesize___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) { _start: { uint8_t x_10; lean_object* x_11; x_10 = lean_unbox(x_2); lean_dec(x_2); -x_11 = l_Lean_Elab_Term_withSynthesize___rarg(x_1, x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_11 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_1, x_10, x_3, x_4, x_5, x_6, x_7, x_8, x_9); return x_11; } } +lean_object* l_Lean_Elab_Term_withSynthesize___rarg___lambda__1(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +lean_object* x_11; +x_11 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_3, x_1, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_11; +} +} +lean_object* l_Lean_Elab_Term_withSynthesize___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, uint8_t x_4) { +_start: +{ +lean_object* x_5; lean_object* x_6; lean_object* x_7; +x_5 = lean_box(x_4); +x_6 = lean_alloc_closure((void*)(l_Lean_Elab_Term_withSynthesize___rarg___lambda__1___boxed), 10, 1); +lean_closure_set(x_6, 0, x_5); +x_7 = lean_apply_3(x_1, lean_box(0), x_6, x_3); +return x_7; +} +} +lean_object* l_Lean_Elab_Term_withSynthesize(lean_object* x_1, lean_object* x_2) { +_start: +{ +lean_object* x_3; +x_3 = lean_alloc_closure((void*)(l_Lean_Elab_Term_withSynthesize___rarg___boxed), 4, 0); +return x_3; +} +} +lean_object* l_Lean_Elab_Term_withSynthesize___rarg___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { +_start: +{ +uint8_t x_11; lean_object* x_12; +x_11 = lean_unbox(x_1); +lean_dec(x_1); +x_12 = l_Lean_Elab_Term_withSynthesize___rarg___lambda__1(x_11, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +return x_12; +} +} +lean_object* l_Lean_Elab_Term_withSynthesize___rarg___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) { +_start: +{ +uint8_t x_5; lean_object* x_6; +x_5 = lean_unbox(x_4); +lean_dec(x_4); +x_6 = l_Lean_Elab_Term_withSynthesize___rarg(x_1, x_2, x_3, x_5); +lean_dec(x_2); +return x_6; +} +} lean_object* l_Lean_Elab_Term_elabTermAndSynthesize(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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: { @@ -11614,7 +11672,7 @@ lean_inc(x_8); lean_inc(x_7); lean_inc(x_6); lean_inc(x_5); -x_17 = l_Lean_Elab_Term_withSynthesize___rarg(x_12, x_16, x_3, x_4, x_5, x_6, x_7, x_8, x_9); +x_17 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_12, x_16, x_3, x_4, x_5, x_6, x_7, x_8, x_9); if (lean_obj_tag(x_17) == 0) { lean_object* x_18; lean_object* x_19; lean_object* x_20; @@ -11690,7 +11748,7 @@ lean_inc(x_8); lean_inc(x_34); lean_inc(x_6); lean_inc(x_5); -x_36 = l_Lean_Elab_Term_withSynthesize___rarg(x_12, x_35, x_3, x_4, x_5, x_6, x_34, x_8, x_9); +x_36 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_12, x_35, x_3, x_4, x_5, x_6, x_34, x_8, x_9); if (lean_obj_tag(x_36) == 0) { lean_object* x_37; lean_object* x_38; lean_object* x_39; @@ -11754,8 +11812,6 @@ lean_dec_ref(res); res = initialize_Lean_Elab_Tactic_Basic(lean_io_mk_world()); if (lean_io_result_is_error(res)) return res; lean_dec_ref(res); -l_Lean_Elab_Term_runTactic___closed__1 = _init_l_Lean_Elab_Term_runTactic___closed__1(); -lean_mark_persistent(l_Lean_Elab_Term_runTactic___closed__1); l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___closed__1 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___closed__1(); lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__1___closed__1); l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__2___closed__1 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_resumePostponed___lambda__2___closed__1(); @@ -11772,34 +11828,6 @@ l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstM lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__1); l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__2 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__2(); lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizePendingCoeInstMVar___lambda__1___closed__2); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7); -l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8(); -lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5); -l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6(); -lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6); l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__1 = _init_l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__1(); lean_mark_persistent(l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__1); l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__2 = _init_l_Lean_Meta_commitWhenSome_x3f___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_tryToSynthesizeUsingDefaultInstance___spec__2___lambda__1___closed__2(); @@ -11834,6 +11862,36 @@ l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_repo lean_mark_persistent(l_List_forIn_loop___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_reportStuckSyntheticMVars___spec__1___closed__3); l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___closed__1 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___closed__1(); lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_getSomeSynthethicMVarsRef___rarg___closed__1); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__1); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__2); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__3); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__4); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__5); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__6); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__7); +l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8 = _init_l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8(); +lean_mark_persistent(l_List_filterAuxM___at___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___spec__1___closed__8); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__1); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__2); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__3); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__4); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__5); +l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6 = _init_l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6(); +lean_mark_persistent(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_synthesizeSyntheticMVarsStep___closed__6); +l_Lean_Elab_Term_runTactic___closed__1 = _init_l_Lean_Elab_Term_runTactic___closed__1(); +lean_mark_persistent(l_Lean_Elab_Term_runTactic___closed__1); return lean_io_result_mk_ok(lean_box(0)); } #ifdef __cplusplus diff --git a/stage0/stdlib/Lean/Elab/Tactic/Rewrite.c b/stage0/stdlib/Lean/Elab/Tactic/Rewrite.c index 38c95a3ce2..4ccbd74d1b 100644 --- a/stage0/stdlib/Lean/Elab/Tactic/Rewrite.c +++ b/stage0/stdlib/Lean/Elab/Tactic/Rewrite.c @@ -96,6 +96,7 @@ lean_object* l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___ lean_object* l_Lean_Elab_Tactic_rewriteLocalDecl___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_Elab_Tactic_setGoals(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___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_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalContext_getFVarIds(lean_object*); lean_object* l_Lean_Meta_getLocalDeclFromUserName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Elab_Tactic_evalERewrite___closed__1; @@ -565,7 +566,7 @@ lean_object* x_13; x_13 = l_Lean_Elab_Tactic_getMainGoal(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12); if (lean_obj_tag(x_13) == 0) { -lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; +lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; uint8_t x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; uint8_t x_27; lean_object* x_28; x_14 = lean_ctor_get(x_13, 0); lean_inc(x_14); x_15 = lean_ctor_get(x_13, 1); @@ -594,12 +595,18 @@ lean_closure_set(x_24, 3, x_17); x_25 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); lean_closure_set(x_25, 0, x_21); lean_closure_set(x_25, 1, x_24); -x_26 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___spec__1___rarg(x_16, x_25, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_15); -return x_26; +x_26 = lean_alloc_closure((void*)(l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___spec__1___rarg), 11, 4); +lean_closure_set(x_26, 0, x_16); +lean_closure_set(x_26, 1, x_25); +lean_closure_set(x_26, 2, x_4); +lean_closure_set(x_26, 3, x_5); +x_27 = 0; +x_28 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_26, x_27, x_6, x_7, x_8, x_9, x_10, x_11, x_15); +return x_28; } else { -uint8_t x_27; +uint8_t x_29; lean_dec(x_11); lean_dec(x_10); lean_dec(x_9); @@ -609,23 +616,23 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_4); lean_dec(x_1); -x_27 = !lean_is_exclusive(x_13); -if (x_27 == 0) +x_29 = !lean_is_exclusive(x_13); +if (x_29 == 0) { return x_13; } else { -lean_object* x_28; lean_object* x_29; lean_object* x_30; -x_28 = lean_ctor_get(x_13, 0); -x_29 = lean_ctor_get(x_13, 1); -lean_inc(x_29); -lean_inc(x_28); +lean_object* x_30; lean_object* x_31; lean_object* x_32; +x_30 = lean_ctor_get(x_13, 0); +x_31 = lean_ctor_get(x_13, 1); +lean_inc(x_31); +lean_inc(x_30); lean_dec(x_13); -x_30 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_30, 0, x_28); -lean_ctor_set(x_30, 1, x_29); -return x_30; +x_32 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_32, 0, x_30); +lean_ctor_set(x_32, 1, x_31); +return x_32; } } } @@ -822,7 +829,7 @@ lean_object* x_14; x_14 = l_Lean_Elab_Tactic_getMainGoal(x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); if (lean_obj_tag(x_14) == 0) { -lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; 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_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; x_15 = lean_ctor_get(x_14, 0); lean_inc(x_15); x_16 = lean_ctor_get(x_14, 1); @@ -852,12 +859,18 @@ lean_closure_set(x_25, 4, x_18); x_26 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_liftMetaTacticAux___spec__1___rarg), 11, 2); lean_closure_set(x_26, 0, x_22); lean_closure_set(x_26, 1, x_25); -x_27 = l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___spec__1___rarg(x_17, x_26, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_16); -return x_27; +x_27 = lean_alloc_closure((void*)(l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___spec__1___rarg), 11, 4); +lean_closure_set(x_27, 0, x_17); +lean_closure_set(x_27, 1, x_26); +lean_closure_set(x_27, 2, x_5); +lean_closure_set(x_27, 3, x_6); +x_28 = 0; +x_29 = l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg(x_27, x_28, x_7, x_8, x_9, x_10, x_11, x_12, x_16); +return x_29; } else { -uint8_t x_28; +uint8_t x_30; lean_dec(x_12); lean_dec(x_11); lean_dec(x_10); @@ -868,23 +881,23 @@ lean_dec(x_6); lean_dec(x_5); lean_dec(x_3); lean_dec(x_1); -x_28 = !lean_is_exclusive(x_14); -if (x_28 == 0) +x_30 = !lean_is_exclusive(x_14); +if (x_30 == 0) { return x_14; } else { -lean_object* x_29; lean_object* x_30; lean_object* x_31; -x_29 = lean_ctor_get(x_14, 0); -x_30 = lean_ctor_get(x_14, 1); -lean_inc(x_30); -lean_inc(x_29); +lean_object* x_31; lean_object* x_32; lean_object* x_33; +x_31 = lean_ctor_get(x_14, 0); +x_32 = lean_ctor_get(x_14, 1); +lean_inc(x_32); +lean_inc(x_31); lean_dec(x_14); -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; +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; } } } diff --git a/stage0/stdlib/Lean/Elab/Tactic/Simp.c b/stage0/stdlib/Lean/Elab/Tactic/Simp.c index 1c26dc8d8a..3a01e43469 100644 --- a/stage0/stdlib/Lean/Elab/Tactic/Simp.c +++ b/stage0/stdlib/Lean/Elab/Tactic/Simp.c @@ -20,8 +20,6 @@ lean_object* l_Lean_Elab_Tactic_evalSimpConfig(lean_object*, lean_object*, lean_ lean_object* l_Lean_Elab_Tactic_simpLocalDecl___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); size_t l_USize_add(size_t, size_t); lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withNewMCtxDepthImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabSimpConfig___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_evalSimpConfigUnsafe___closed__5; lean_object* l_Lean_Elab_Tactic_withMainMVarContext___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -29,7 +27,6 @@ lean_object* l_Lean_Elab_Tactic_elabSimpConfig___boxed(lean_object*, lean_object lean_object* l_Lean_Elab_Tactic_tryExactTrivial(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDeclFVarId___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_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___spec__3(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_List_toString___at_Lean_resolveGlobalConstNoOverload___spec__2(lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDecl___lambda__2(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_Parser_Syntax_addPrec___closed__2; lean_object* lean_name_mk_string(lean_object*, lean_object*); @@ -43,24 +40,19 @@ lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Elab_Tactic_Simp_0__Le extern lean_object* l_Lean_Parser_Tactic_simpPost___closed__2; extern lean_object* l_Array_empty___closed__1; lean_object* lean_environment_find(lean_object*, lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_BacktrackableState_restore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabSimpConfig___closed__4; lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_match__2___rarg(lean_object*, lean_object*); lean_object* lean_st_ref_get(lean_object*, lean_object*); lean_object* l___regBuiltin_Lean_Elab_Tactic_evalSimp(lean_object*); -extern lean_object* l_Lean_instInhabitedParserDescr___closed__1; uint8_t lean_name_eq(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDecl___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_foldlMUnsafe_fold___at_Lean_Elab_Tactic_evalSimp___spec__3(lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* lean_array_get_size(lean_object*); -lean_object* lean_string_append(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDeclFVarId(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___at_Lean_resolveGlobalConst___spec__2(lean_object*); lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_evalSimp___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Std_RBNode_insert___rarg(lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_USize_decLt(size_t, size_t); @@ -70,7 +62,6 @@ extern lean_object* l_Lean_throwUnknownConstant___rarg___closed__2; extern lean_object* l_Lean_instInhabitedException___closed__1; lean_object* l_Lean_Elab_Tactic_simpTarget_match__2(lean_object*); lean_object* l_Lean_Elab_Tactic_simpTarget_match__2___rarg(lean_object*, lean_object*); -lean_object* l_List_map___at_Lean_resolveGlobalConstNoOverload___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_evalSimpConfigUnsafe(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_replaceTargetEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_NameSet_insert___closed__1; @@ -80,41 +71,40 @@ lean_object* l_Array_forM___at_Lean_Elab_Tactic_evalSimp___spec__1(lean_object*, lean_object* l_Array_foldlMUnsafe___at_Lean_Elab_Tactic_evalSimp___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_getConstInfo___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___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_Simp_main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_term___u2218_____closed__5; lean_object* l_Lean_Elab_Tactic_simpLocalDecl___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_Elab_Tactic_simpAll___lambda__1___closed__3; lean_object* l_Lean_Elab_Tactic_expandOptLocation(lean_object*); lean_object* l_Lean_Elab_Tactic_simpAll___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_evalSimp___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_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabSimpConfig(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Meta_Simp_DefaultMethods_methods; lean_object* l_Lean_Elab_Tactic_evalSimpConfigUnsafe___closed__3; extern lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Basic___hyg_550____closed__1; extern lean_object* l___private_Lean_Elab_Tactic_Basic_0__Lean_Elab_Tactic_sortFVarIds___closed__1; -lean_object* l_Lean_Syntax_getId(lean_object*); lean_object* l_Lean_Elab_Tactic_evalSimp___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_Elab_Tactic_simpLocalDeclFVarId___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_Array_forM___at_Lean_Elab_Tactic_evalTacticAux___spec__10___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_Elab_Tactic_simpTarget_match__1(lean_object*); -lean_object* l_List_filterAux___at_Lean_resolveGlobalConst___spec__1(lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_tryExactTrivial___closed__2; lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_match__1___rarg(lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_getMainGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_evalSimp___closed__1; lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___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_Lean_Meta_Simp_rewrite_getRHS___closed__3; -lean_object* lean_expr_dbg_to_string(lean_object*); +lean_object* l_Lean_Elab_Term_resolveId_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_match__1(lean_object*); lean_object* l_Lean_Elab_Tactic_tryExactTrivial___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_reverse___rarg(lean_object*); +uint8_t l_Lean_Expr_isConst(lean_object*); lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*); lean_object* l_Lean_Meta_withLCtx___at_Lean_Elab_Term_elabSyntheticHole___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_ResolveName_resolveGlobalName(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_ReaderT_bind___at_Lean_Elab_Term_instMonadLogTermElabM___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Term_elabTermEnsuringType___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_KernelException_toMessageData___closed__3; size_t lean_usize_of_nat(lean_object*); +lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f_match__1(lean_object*); extern lean_object* l_Lean_NameSet_empty; extern lean_object* l_Lean_Elab_Tactic_tacticElabAttribute; lean_object* l_Lean_ConstantInfo_type(lean_object*); @@ -129,10 +119,8 @@ lean_object* l_Lean_LocalDecl_type(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_Elab_Tactic_evalSimp_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_assignExprMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -extern lean_object* l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__1; lean_object* l_Lean_Meta_changeLocalDecl(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getSepArgs(lean_object*); -extern lean_object* l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__2; lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas(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_Tactic_tryExactTrivial___closed__1; lean_object* l_Lean_Meta_getLocalDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -147,30 +135,24 @@ lean_object* l_Lean_Syntax_getKind(lean_object*); lean_object* l_Lean_Elab_Tactic_saveBacktrackableState___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabSimpConfig___closed__3; lean_object* l_Lean_Elab_Tactic_setGoals(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withMVarContext___at_Lean_Elab_Tactic_withMainMVarContext___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_Lean_Meta_SimpLemmas_add(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___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_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_LocalContext_getFVarIds(lean_object*); lean_object* l_Lean_Meta_getLocalDeclFromUserName(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5(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_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f_match__1___rarg(lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Tactic_simp___closed__2; lean_object* l_Lean_Elab_Tactic_simpAll___lambda__1___closed__1; lean_object* l_Lean_Elab_Tactic_evalSimpConfigUnsafe___closed__2; lean_object* l_Lean_Elab_Tactic_simpAll___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_Elab_Tactic_simpTarget_match__1___rarg(lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_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* l_Lean_Elab_Tactic_evalSimpConfigUnsafe___closed__1; lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabTerm(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t l_Lean_Syntax_isNone(lean_object*); lean_object* l_Lean_Elab_Term_evalExpr___rarg(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_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpTarget___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDeclFVarId___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___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___boxed__const__1; -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_simpAll___lambda__1___closed__2; lean_object* l_Lean_Elab_Tactic_evalSimpConfig___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -178,22 +160,20 @@ lean_object* l_Lean_getConstInfo___at___private_Lean_Elab_Tactic_Simp_0__Lean_El lean_object* l_Array_foldlMUnsafe___at_Lean_Elab_Tactic_evalSimp___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Array_forM___at_Lean_Elab_Tactic_evalSimp___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Meta_withNewMCtxDepth___at_Lean_Elab_Tactic_elabSimpConfig___spec__1(lean_object*); lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_match__2(lean_object*); lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_simpAll___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); extern lean_object* l_Lean_Parser_Tactic_intro___closed__3; -uint8_t l_List_isEmpty___rarg(lean_object*); lean_object* l_Lean_Meta_SimpLemmas_addConst(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f(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_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); lean_object* l_Lean_Elab_Tactic_elabSimpConfig___closed__2; lean_object* l_Lean_mkConst(lean_object*, lean_object*); +lean_object* l_Lean_Expr_constName_x21(lean_object*); extern lean_object* l_Lean_Meta_Simp_defaultMaxSteps; lean_object* l_Lean_Elab_Tactic_evalSimpConfig___rarg(lean_object*); lean_object* l_Lean_Meta_withNewMCtxDepth___at_Lean_Elab_Tactic_elabSimpConfig___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___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_Elab_Term_withSynthesize___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); uint8_t lean_nat_dec_lt(lean_object*, lean_object*); uint8_t l_Lean_Syntax_isIdent(lean_object*); lean_object* l_Lean_Elab_Tactic_simpLocalDeclFVarId___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*); @@ -1606,7 +1586,7 @@ lean_closure_set(x_18, 0, x_16); lean_closure_set(x_18, 1, x_17); x_19 = 0; x_20 = lean_box(x_19); -x_21 = lean_alloc_closure((void*)(l_Lean_Elab_Term_withSynthesize___rarg___boxed), 9, 2); +x_21 = lean_alloc_closure((void*)(l___private_Lean_Elab_SyntheticMVars_0__Lean_Elab_Term_withSynthesizeImp___rarg___boxed), 9, 2); lean_closure_set(x_21, 0, x_18); lean_closure_set(x_21, 1, x_20); x_22 = lean_alloc_closure((void*)(l_Lean_Meta_withNewMCtxDepth___at_Lean_Elab_Tactic_elabSimpConfig___spec__1___rarg), 8, 1); @@ -1642,6 +1622,43 @@ lean_dec(x_1); return x_9; } } +lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_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_object* x_6; +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); +lean_dec(x_1); +x_6 = lean_apply_2(x_2, x_4, x_5); +return x_6; +} +else +{ +lean_object* x_7; lean_object* x_8; lean_object* x_9; +lean_dec(x_2); +x_7 = lean_ctor_get(x_1, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_1, 1); +lean_inc(x_8); +lean_dec(x_1); +x_9 = lean_apply_2(x_3, x_7, x_8); +return x_9; +} +} +} +lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f_match__1(lean_object* x_1) { +_start: +{ +lean_object* x_2; +x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f_match__1___rarg), 3, 0); +return x_2; +} +} lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) { _start: { @@ -1693,348 +1710,6 @@ x_2 = lean_alloc_closure((void*)(l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_ return x_2; } } -lean_object* l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; uint8_t x_12; -x_11 = lean_st_ref_get(x_9, x_10); -x_12 = !lean_is_exclusive(x_11); -if (x_12 == 0) -{ -lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; -x_13 = lean_ctor_get(x_11, 0); -x_14 = lean_ctor_get(x_13, 0); -lean_inc(x_14); -lean_dec(x_13); -x_15 = lean_ctor_get(x_8, 4); -lean_inc(x_15); -x_16 = lean_ctor_get(x_8, 5); -lean_inc(x_16); -lean_dec(x_8); -x_17 = l_Lean_ResolveName_resolveGlobalName(x_14, x_15, x_16, x_1); -lean_dec(x_15); -lean_ctor_set(x_11, 0, x_17); -return x_11; -} -else -{ -lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; -x_18 = lean_ctor_get(x_11, 0); -x_19 = lean_ctor_get(x_11, 1); -lean_inc(x_19); -lean_inc(x_18); -lean_dec(x_11); -x_20 = lean_ctor_get(x_18, 0); -lean_inc(x_20); -lean_dec(x_18); -x_21 = lean_ctor_get(x_8, 4); -lean_inc(x_21); -x_22 = lean_ctor_get(x_8, 5); -lean_inc(x_22); -lean_dec(x_8); -x_23 = l_Lean_ResolveName_resolveGlobalName(x_20, x_21, x_22, x_1); -lean_dec(x_21); -x_24 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_24, 0, x_23); -lean_ctor_set(x_24, 1, x_19); -return x_24; -} -} -} -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_8, 3); -x_12 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_6, x_7, x_8, x_9, x_10); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 0); -lean_inc(x_11); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_11); -lean_ctor_set(x_15, 1, x_14); -lean_ctor_set_tag(x_12, 1); -lean_ctor_set(x_12, 0, x_15); -return x_12; -} -else -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_16 = lean_ctor_get(x_12, 0); -x_17 = lean_ctor_get(x_12, 1); -lean_inc(x_17); -lean_inc(x_16); -lean_dec(x_12); -lean_inc(x_11); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_11); -lean_ctor_set(x_18, 1, x_16); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_19, 1, x_17); -return x_19; -} -} -} -lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_11 = lean_box(0); -x_12 = l_Lean_mkConst(x_1, x_11); -x_13 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_13, 0, x_12); -x_14 = l_Lean_throwUnknownConstant___rarg___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_KernelException_toMessageData___closed__3; -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___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5(x_17, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -return x_18; -} -} -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { -_start: -{ -lean_object* x_12; lean_object* x_13; -x_12 = l_List_map___at_Lean_resolveGlobalConst___spec__2(x_1); -x_13 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_13, 0, x_12); -lean_ctor_set(x_13, 1, x_11); -return x_13; -} -} -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; uint8_t x_16; -lean_inc(x_8); -lean_inc(x_1); -x_11 = l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__3(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -x_12 = lean_ctor_get(x_11, 0); -lean_inc(x_12); -x_13 = lean_ctor_get(x_11, 1); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_box(0); -x_15 = l_List_filterAux___at_Lean_resolveGlobalConst___spec__1(x_12, x_14); -x_16 = l_List_isEmpty___rarg(x_15); -if (x_16 == 0) -{ -lean_object* x_17; lean_object* x_18; -lean_dec(x_1); -x_17 = lean_box(0); -x_18 = l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___lambda__1(x_15, x_17, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); -lean_dec(x_8); -return x_18; -} -else -{ -lean_object* x_19; uint8_t x_20; -lean_dec(x_15); -x_19 = l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); -lean_dec(x_8); -x_20 = !lean_is_exclusive(x_19); -if (x_20 == 0) -{ -return x_19; -} -else -{ -lean_object* x_21; lean_object* x_22; lean_object* x_23; -x_21 = lean_ctor_get(x_19, 0); -x_22 = lean_ctor_get(x_19, 1); -lean_inc(x_22); -lean_inc(x_21); -lean_dec(x_19); -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_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; lean_object* x_12; uint8_t x_13; -x_11 = lean_ctor_get(x_8, 3); -x_12 = l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(x_1, x_6, x_7, x_8, x_9, x_10); -x_13 = !lean_is_exclusive(x_12); -if (x_13 == 0) -{ -lean_object* x_14; lean_object* x_15; -x_14 = lean_ctor_get(x_12, 0); -lean_inc(x_11); -x_15 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_15, 0, x_11); -lean_ctor_set(x_15, 1, x_14); -lean_ctor_set_tag(x_12, 1); -lean_ctor_set(x_12, 0, x_15); -return x_12; -} -else -{ -lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; -x_16 = lean_ctor_get(x_12, 0); -x_17 = lean_ctor_get(x_12, 1); -lean_inc(x_17); -lean_inc(x_16); -lean_dec(x_12); -lean_inc(x_11); -x_18 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_18, 0, x_11); -lean_ctor_set(x_18, 1, x_16); -x_19 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_19, 0, x_18); -lean_ctor_set(x_19, 1, x_17); -return x_19; -} -} -} -lean_object* l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_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* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -lean_inc(x_8); -lean_inc(x_1); -x_11 = l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -if (lean_obj_tag(x_11) == 0) -{ -lean_object* x_12; -x_12 = lean_ctor_get(x_11, 0); -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_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; -x_13 = lean_ctor_get(x_11, 1); -lean_inc(x_13); -lean_dec(x_11); -x_14 = lean_box(0); -x_15 = l_Lean_mkConst(x_1, x_14); -x_16 = lean_expr_dbg_to_string(x_15); -lean_dec(x_15); -x_17 = l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__1; -x_18 = lean_string_append(x_17, x_16); -lean_dec(x_16); -x_19 = l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__2; -x_20 = lean_string_append(x_18, x_19); -x_21 = l_List_map___at_Lean_resolveGlobalConstNoOverload___spec__1(x_14, x_12); -x_22 = l_List_toString___at_Lean_resolveGlobalConstNoOverload___spec__2(x_21); -x_23 = lean_string_append(x_20, x_22); -lean_dec(x_22); -x_24 = l_Lean_instInhabitedParserDescr___closed__1; -x_25 = lean_string_append(x_23, x_24); -x_26 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_26, 0, x_25); -x_27 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_27, 0, x_26); -x_28 = l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6(x_27, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_13); -lean_dec(x_8); -return x_28; -} -else -{ -lean_object* x_29; -x_29 = lean_ctor_get(x_12, 1); -lean_inc(x_29); -if (lean_obj_tag(x_29) == 0) -{ -uint8_t x_30; -lean_dec(x_8); -lean_dec(x_1); -x_30 = !lean_is_exclusive(x_11); -if (x_30 == 0) -{ -lean_object* x_31; lean_object* x_32; -x_31 = lean_ctor_get(x_11, 0); -lean_dec(x_31); -x_32 = lean_ctor_get(x_12, 0); -lean_inc(x_32); -lean_dec(x_12); -lean_ctor_set(x_11, 0, x_32); -return x_11; -} -else -{ -lean_object* x_33; lean_object* x_34; lean_object* x_35; -x_33 = lean_ctor_get(x_11, 1); -lean_inc(x_33); -lean_dec(x_11); -x_34 = lean_ctor_get(x_12, 0); -lean_inc(x_34); -lean_dec(x_12); -x_35 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_35, 0, x_34); -lean_ctor_set(x_35, 1, x_33); -return x_35; -} -} -else -{ -lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; 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_dec(x_29); -x_36 = lean_ctor_get(x_11, 1); -lean_inc(x_36); -lean_dec(x_11); -x_37 = lean_box(0); -x_38 = l_Lean_mkConst(x_1, x_37); -x_39 = lean_expr_dbg_to_string(x_38); -lean_dec(x_38); -x_40 = l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__1; -x_41 = lean_string_append(x_40, x_39); -lean_dec(x_39); -x_42 = l_Lean_resolveGlobalConstNoOverload___rarg___lambda__1___closed__2; -x_43 = lean_string_append(x_41, x_42); -x_44 = l_List_map___at_Lean_resolveGlobalConstNoOverload___spec__1(x_37, x_12); -x_45 = l_List_toString___at_Lean_resolveGlobalConstNoOverload___spec__2(x_44); -x_46 = lean_string_append(x_43, x_45); -lean_dec(x_45); -x_47 = l_Lean_instInhabitedParserDescr___closed__1; -x_48 = lean_string_append(x_46, x_47); -x_49 = lean_alloc_ctor(2, 1, 0); -lean_ctor_set(x_49, 0, x_48); -x_50 = lean_alloc_ctor(0, 1, 0); -lean_ctor_set(x_50, 0, x_49); -x_51 = l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6(x_50, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_36); -lean_dec(x_8); -return x_51; -} -} -} -else -{ -uint8_t x_52; -lean_dec(x_8); -lean_dec(x_1); -x_52 = !lean_is_exclusive(x_11); -if (x_52 == 0) -{ -return x_11; -} -else -{ -lean_object* x_53; lean_object* x_54; lean_object* x_55; -x_53 = lean_ctor_get(x_11, 0); -x_54 = lean_ctor_get(x_11, 1); -lean_inc(x_54); -lean_inc(x_53); -lean_dec(x_11); -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* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { @@ -2044,6 +1719,9 @@ if (x_11 == 0) { lean_object* x_12; lean_object* x_13; lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_4); +lean_dec(x_1); x_12 = lean_box(0); x_13 = lean_alloc_ctor(0, 2, 0); lean_ctor_set(x_13, 0, x_12); @@ -2053,190 +1731,79 @@ return x_13; else { lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; -x_14 = l_Lean_Syntax_getId(x_1); -x_15 = l_Lean_Elab_Tactic_saveBacktrackableState___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -x_16 = lean_ctor_get(x_15, 0); +x_14 = l_Lean_Elab_Tactic_saveBacktrackableState___rarg(x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); +x_15 = lean_ctor_get(x_14, 0); +lean_inc(x_15); +x_16 = lean_ctor_get(x_14, 1); lean_inc(x_16); -x_17 = lean_ctor_get(x_15, 1); -lean_inc(x_17); -lean_dec(x_15); +lean_dec(x_14); +x_17 = l_term___u2218_____closed__5; lean_inc(x_8); -x_18 = l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__1(x_14, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_17); +lean_inc(x_6); +lean_inc(x_4); +x_18 = l_Lean_Elab_Term_resolveId_x3f(x_1, x_17, x_4, x_5, x_6, x_7, x_8, x_9, x_16); if (lean_obj_tag(x_18) == 0) { uint8_t x_19; -lean_dec(x_16); +lean_dec(x_15); lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_4); x_19 = !lean_is_exclusive(x_18); if (x_19 == 0) { -lean_object* x_20; lean_object* x_21; -x_20 = lean_ctor_get(x_18, 0); -x_21 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_21, 0, x_20); -lean_ctor_set(x_18, 0, x_21); return x_18; } else { -lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; -x_22 = lean_ctor_get(x_18, 0); +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(0, 2, 0); +lean_ctor_set(x_22, 0, x_20); +lean_ctor_set(x_22, 1, x_21); +return x_22; +} +} +else +{ +lean_object* x_23; lean_object* x_24; uint8_t x_25; x_23 = lean_ctor_get(x_18, 1); lean_inc(x_23); -lean_inc(x_22); lean_dec(x_18); -x_24 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_24, 0, x_22); -x_25 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_25, 0, x_24); -lean_ctor_set(x_25, 1, x_23); -return x_25; -} +x_24 = l_Lean_Elab_Tactic_BacktrackableState_restore(x_15, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_23); +lean_dec(x_8); +lean_dec(x_6); +lean_dec(x_4); +x_25 = !lean_is_exclusive(x_24); +if (x_25 == 0) +{ +lean_object* x_26; lean_object* x_27; +x_26 = lean_ctor_get(x_24, 0); +lean_dec(x_26); +x_27 = lean_box(0); +lean_ctor_set(x_24, 0, x_27); +return x_24; } else { -lean_object* x_26; lean_object* x_27; uint8_t x_28; -x_26 = lean_ctor_get(x_18, 1); -lean_inc(x_26); -lean_dec(x_18); -x_27 = l_Lean_Elab_Tactic_BacktrackableState_restore(x_16, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_26); -lean_dec(x_8); -x_28 = !lean_is_exclusive(x_27); -if (x_28 == 0) -{ -lean_object* x_29; lean_object* x_30; -x_29 = lean_ctor_get(x_27, 0); -lean_dec(x_29); -x_30 = lean_box(0); -lean_ctor_set(x_27, 0, x_30); -return x_27; -} -else -{ -lean_object* x_31; lean_object* x_32; lean_object* x_33; -x_31 = lean_ctor_get(x_27, 1); -lean_inc(x_31); -lean_dec(x_27); -x_32 = lean_box(0); -x_33 = lean_alloc_ctor(0, 2, 0); -lean_ctor_set(x_33, 0, x_32); -lean_ctor_set(x_33, 1, x_31); -return x_33; +lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_28 = lean_ctor_get(x_24, 1); +lean_inc(x_28); +lean_dec(x_24); +x_29 = lean_box(0); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_28); +return x_30; } } } } } -lean_object* l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_resolveGlobalName___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__3(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_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__5(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} -lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__4(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10, lean_object* x_11) { -_start: -{ -lean_object* x_12; -x_12 = l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_12; -} -} -lean_object* l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_resolveGlobalConst___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__2(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} -lean_object* l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_throwError___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__6(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} -lean_object* l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { -_start: -{ -lean_object* x_11; -x_11 = l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___spec__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10); -lean_dec(x_9); -lean_dec(x_7); -lean_dec(x_6); -lean_dec(x_5); -lean_dec(x_4); -lean_dec(x_3); -lean_dec(x_2); -return x_11; -} -} lean_object* l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9, lean_object* x_10) { _start: { @@ -2244,12 +1811,9 @@ lean_object* x_11; x_11 = l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f(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_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_11; } } @@ -2404,7 +1968,7 @@ return x_22; } else { -lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_88; +lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; uint8_t x_29; lean_object* x_30; lean_object* x_31; uint8_t x_32; lean_object* x_33; lean_object* x_34; lean_object* x_101; x_23 = lean_array_uget(x_1, x_3); x_24 = lean_ctor_get(x_4, 0); lean_inc(x_24); @@ -2425,42 +1989,45 @@ x_30 = lean_unsigned_to_nat(1u); x_31 = l_Lean_Syntax_getArg(x_23, x_30); lean_dec(x_23); lean_inc(x_11); -x_88 = l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f(x_31, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); +lean_inc(x_9); +lean_inc(x_7); +lean_inc(x_31); +x_101 = l___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas_resolveSimpIdLemma_x3f(x_31, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_13); if (x_29 == 0) { -lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; uint8_t x_94; -x_89 = lean_ctor_get(x_88, 0); -lean_inc(x_89); -x_90 = lean_ctor_get(x_88, 1); -lean_inc(x_90); -lean_dec(x_88); -x_91 = l_Lean_Syntax_getArg(x_28, x_27); +lean_object* x_102; lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106; uint8_t x_107; +x_102 = lean_ctor_get(x_101, 0); +lean_inc(x_102); +x_103 = lean_ctor_get(x_101, 1); +lean_inc(x_103); +lean_dec(x_101); +x_104 = l_Lean_Syntax_getArg(x_28, x_27); lean_dec(x_28); -x_92 = l_Lean_Syntax_getKind(x_91); -x_93 = l_Lean_Parser_Tactic_simpPost___closed__2; -x_94 = lean_name_eq(x_92, x_93); -lean_dec(x_92); -x_32 = x_94; -x_33 = x_89; -x_34 = x_90; -goto block_87; +x_105 = l_Lean_Syntax_getKind(x_104); +x_106 = l_Lean_Parser_Tactic_simpPost___closed__2; +x_107 = lean_name_eq(x_105, x_106); +lean_dec(x_105); +x_32 = x_107; +x_33 = x_102; +x_34 = x_103; +goto block_100; } else { -lean_object* x_95; lean_object* x_96; uint8_t x_97; +lean_object* x_108; lean_object* x_109; uint8_t x_110; lean_dec(x_28); -x_95 = lean_ctor_get(x_88, 0); -lean_inc(x_95); -x_96 = lean_ctor_get(x_88, 1); -lean_inc(x_96); -lean_dec(x_88); -x_97 = 1; -x_32 = x_97; -x_33 = x_95; -x_34 = x_96; -goto block_87; +x_108 = lean_ctor_get(x_101, 0); +lean_inc(x_108); +x_109 = lean_ctor_get(x_101, 1); +lean_inc(x_109); +lean_dec(x_101); +x_110 = 1; +x_32 = x_110; +x_33 = x_108; +x_34 = x_109; +goto block_100; } -block_87: +block_100: { if (lean_obj_tag(x_33) == 0) { @@ -2574,159 +2141,194 @@ return x_53; } else { -lean_object* x_54; lean_object* x_55; +lean_object* x_54; uint8_t x_55; lean_dec(x_31); x_54 = lean_ctor_get(x_33, 0); lean_inc(x_54); lean_dec(x_33); -lean_inc(x_54); -x_55 = l_Lean_getConstInfo___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___spec__1(x_54, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_34); -if (lean_obj_tag(x_55) == 0) +x_55 = l_Lean_Expr_isConst(x_54); +if (x_55 == 0) { -lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; -x_56 = lean_ctor_get(x_55, 0); -lean_inc(x_56); -x_57 = lean_ctor_get(x_55, 1); -lean_inc(x_57); -lean_dec(x_55); -x_58 = l_Lean_ConstantInfo_type(x_56); -lean_dec(x_56); +lean_object* x_56; lean_object* x_57; lean_object* x_58; +x_56 = lean_box(0); +x_57 = lean_unsigned_to_nat(1000u); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); -x_59 = l_Lean_Meta_isProp(x_58, x_9, x_10, x_11, x_12, x_57); -if (lean_obj_tag(x_59) == 0) +x_58 = l_Lean_Meta_SimpLemmas_add(x_25, x_54, x_32, x_57, x_56, x_9, x_10, x_11, x_12, x_34); +if (lean_obj_tag(x_58) == 0) { -lean_object* x_60; uint8_t x_61; -x_60 = lean_ctor_get(x_59, 0); +lean_object* x_59; lean_object* x_60; lean_object* x_61; lean_object* x_62; +x_59 = lean_ctor_get(x_58, 0); +lean_inc(x_59); +x_60 = lean_ctor_get(x_58, 1); lean_inc(x_60); -x_61 = lean_unbox(x_60); -lean_dec(x_60); -if (x_61 == 0) -{ -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_62 = lean_ctor_get(x_59, 1); -lean_inc(x_62); -lean_dec(x_59); -x_63 = l_Lean_NameSet_insert___closed__1; -x_64 = lean_box(0); -x_65 = l_Std_RBNode_insert___rarg(x_63, x_24, x_54, x_64); +lean_dec(x_58); if (lean_is_scalar(x_26)) { - x_66 = lean_alloc_ctor(0, 2, 0); + x_61 = lean_alloc_ctor(0, 2, 0); } else { - x_66 = x_26; + x_61 = x_26; } -lean_ctor_set(x_66, 0, x_65); -lean_ctor_set(x_66, 1, x_25); -x_67 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_67, 0, x_66); -x_14 = x_67; -x_15 = x_62; +lean_ctor_set(x_61, 0, x_24); +lean_ctor_set(x_61, 1, x_59); +x_62 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_62, 0, x_61); +x_14 = x_62; +x_15 = x_60; goto block_20; } else { -lean_object* x_68; lean_object* x_69; lean_object* x_70; -x_68 = lean_ctor_get(x_59, 1); -lean_inc(x_68); -lean_dec(x_59); -x_69 = lean_unsigned_to_nat(1000u); +uint8_t x_63; +lean_dec(x_26); +lean_dec(x_24); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_63 = !lean_is_exclusive(x_58); +if (x_63 == 0) +{ +return x_58; +} +else +{ +lean_object* x_64; lean_object* x_65; lean_object* x_66; +x_64 = lean_ctor_get(x_58, 0); +x_65 = lean_ctor_get(x_58, 1); +lean_inc(x_65); +lean_inc(x_64); +lean_dec(x_58); +x_66 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_66, 0, x_64); +lean_ctor_set(x_66, 1, x_65); +return x_66; +} +} +} +else +{ +lean_object* x_67; lean_object* x_68; +x_67 = l_Lean_Expr_constName_x21(x_54); +lean_dec(x_54); +lean_inc(x_67); +x_68 = l_Lean_getConstInfo___at___private_Lean_Elab_Tactic_Simp_0__Lean_Elab_Tactic_elabSimpLemmas___spec__1(x_67, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12, x_34); +if (lean_obj_tag(x_68) == 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_inc(x_70); +lean_dec(x_68); +x_71 = l_Lean_ConstantInfo_type(x_69); +lean_dec(x_69); lean_inc(x_12); lean_inc(x_11); lean_inc(x_10); lean_inc(x_9); -x_70 = l_Lean_Meta_SimpLemmas_addConst(x_25, x_54, x_32, x_69, x_9, x_10, x_11, x_12, x_68); -if (lean_obj_tag(x_70) == 0) +x_72 = l_Lean_Meta_isProp(x_71, x_9, x_10, x_11, x_12, x_70); +if (lean_obj_tag(x_72) == 0) { -lean_object* x_71; lean_object* x_72; lean_object* x_73; lean_object* x_74; -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); +lean_object* x_73; uint8_t x_74; +x_73 = lean_ctor_get(x_72, 0); +lean_inc(x_73); +x_74 = lean_unbox(x_73); +lean_dec(x_73); +if (x_74 == 0) +{ +lean_object* x_75; lean_object* x_76; lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; +x_75 = lean_ctor_get(x_72, 1); +lean_inc(x_75); +lean_dec(x_72); +x_76 = l_Lean_NameSet_insert___closed__1; +x_77 = lean_box(0); +x_78 = l_Std_RBNode_insert___rarg(x_76, x_24, x_67, x_77); if (lean_is_scalar(x_26)) { - x_73 = lean_alloc_ctor(0, 2, 0); + x_79 = lean_alloc_ctor(0, 2, 0); } else { - x_73 = x_26; + x_79 = x_26; } -lean_ctor_set(x_73, 0, x_24); -lean_ctor_set(x_73, 1, x_71); -x_74 = lean_alloc_ctor(1, 1, 0); -lean_ctor_set(x_74, 0, x_73); -x_14 = x_74; -x_15 = x_72; +lean_ctor_set(x_79, 0, x_78); +lean_ctor_set(x_79, 1, x_25); +x_80 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_80, 0, x_79); +x_14 = x_80; +x_15 = x_75; goto block_20; } else { -uint8_t x_75; -lean_dec(x_26); -lean_dec(x_24); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_75 = !lean_is_exclusive(x_70); -if (x_75 == 0) -{ -return x_70; -} -else -{ -lean_object* x_76; lean_object* x_77; lean_object* x_78; -x_76 = lean_ctor_get(x_70, 0); -x_77 = lean_ctor_get(x_70, 1); -lean_inc(x_77); -lean_inc(x_76); -lean_dec(x_70); -x_78 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_78, 0, x_76); -lean_ctor_set(x_78, 1, x_77); -return x_78; -} -} -} -} -else -{ -uint8_t x_79; -lean_dec(x_54); -lean_dec(x_26); -lean_dec(x_25); -lean_dec(x_24); -lean_dec(x_12); -lean_dec(x_11); -lean_dec(x_10); -lean_dec(x_9); -lean_dec(x_8); -lean_dec(x_7); -x_79 = !lean_is_exclusive(x_59); -if (x_79 == 0) -{ -return x_59; -} -else -{ -lean_object* x_80; lean_object* x_81; lean_object* x_82; -x_80 = lean_ctor_get(x_59, 0); -x_81 = lean_ctor_get(x_59, 1); +lean_object* x_81; lean_object* x_82; lean_object* x_83; +x_81 = lean_ctor_get(x_72, 1); lean_inc(x_81); -lean_inc(x_80); -lean_dec(x_59); -x_82 = lean_alloc_ctor(1, 2, 0); -lean_ctor_set(x_82, 0, x_80); -lean_ctor_set(x_82, 1, x_81); -return x_82; +lean_dec(x_72); +x_82 = lean_unsigned_to_nat(1000u); +lean_inc(x_12); +lean_inc(x_11); +lean_inc(x_10); +lean_inc(x_9); +x_83 = l_Lean_Meta_SimpLemmas_addConst(x_25, x_67, x_32, x_82, x_9, x_10, x_11, x_12, x_81); +if (lean_obj_tag(x_83) == 0) +{ +lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; +x_84 = lean_ctor_get(x_83, 0); +lean_inc(x_84); +x_85 = lean_ctor_get(x_83, 1); +lean_inc(x_85); +lean_dec(x_83); +if (lean_is_scalar(x_26)) { + x_86 = lean_alloc_ctor(0, 2, 0); +} else { + x_86 = x_26; +} +lean_ctor_set(x_86, 0, x_24); +lean_ctor_set(x_86, 1, x_84); +x_87 = lean_alloc_ctor(1, 1, 0); +lean_ctor_set(x_87, 0, x_86); +x_14 = x_87; +x_15 = x_85; +goto block_20; +} +else +{ +uint8_t x_88; +lean_dec(x_26); +lean_dec(x_24); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_88 = !lean_is_exclusive(x_83); +if (x_88 == 0) +{ +return x_83; +} +else +{ +lean_object* x_89; lean_object* x_90; lean_object* x_91; +x_89 = lean_ctor_get(x_83, 0); +x_90 = lean_ctor_get(x_83, 1); +lean_inc(x_90); +lean_inc(x_89); +lean_dec(x_83); +x_91 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_91, 0, x_89); +lean_ctor_set(x_91, 1, x_90); +return x_91; +} } } } else { -uint8_t x_83; -lean_dec(x_54); +uint8_t x_92; +lean_dec(x_67); lean_dec(x_26); lean_dec(x_25); lean_dec(x_24); @@ -2736,23 +2338,57 @@ lean_dec(x_10); lean_dec(x_9); lean_dec(x_8); lean_dec(x_7); -x_83 = !lean_is_exclusive(x_55); -if (x_83 == 0) +x_92 = !lean_is_exclusive(x_72); +if (x_92 == 0) { -return x_55; +return x_72; } else { -lean_object* x_84; lean_object* x_85; lean_object* x_86; -x_84 = lean_ctor_get(x_55, 0); -x_85 = lean_ctor_get(x_55, 1); -lean_inc(x_85); -lean_inc(x_84); -lean_dec(x_55); -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_93; lean_object* x_94; lean_object* x_95; +x_93 = lean_ctor_get(x_72, 0); +x_94 = lean_ctor_get(x_72, 1); +lean_inc(x_94); +lean_inc(x_93); +lean_dec(x_72); +x_95 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_95, 0, x_93); +lean_ctor_set(x_95, 1, x_94); +return x_95; +} +} +} +else +{ +uint8_t x_96; +lean_dec(x_67); +lean_dec(x_26); +lean_dec(x_25); +lean_dec(x_24); +lean_dec(x_12); +lean_dec(x_11); +lean_dec(x_10); +lean_dec(x_9); +lean_dec(x_8); +lean_dec(x_7); +x_96 = !lean_is_exclusive(x_68); +if (x_96 == 0) +{ +return x_68; +} +else +{ +lean_object* x_97; lean_object* x_98; lean_object* x_99; +x_97 = lean_ctor_get(x_68, 0); +x_98 = lean_ctor_get(x_68, 1); +lean_inc(x_98); +lean_inc(x_97); +lean_dec(x_68); +x_99 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_99, 0, x_97); +lean_ctor_set(x_99, 1, x_98); +return x_99; +} } } }