chore: update stage0

This commit is contained in:
Leonardo de Moura 2020-02-09 16:13:09 -08:00
parent b977fb8887
commit 0d4fa201bc
40 changed files with 48764 additions and 13772 deletions

View file

@ -329,6 +329,21 @@ fun stx => match_syntax stx with
pure [mvarId]
| _ => throwUnsupportedSyntax
@[builtinTactic «revert»] def evalRevert : Tactic :=
fun stx => match_syntax stx with
| `(tactic| revert $hs*) => do
(g, gs) ← getMainGoal stx;
withMVarContext g $ do
fvarIds ← hs.mapM $ fun h => do {
fvar? ← liftTermElabM $ Term.isLocalTermId? h true;
match fvar? with
| some fvar => pure fvar.fvarId!
| none => throwError h ("unknown variable '" ++ toString h.getId ++ "'")
};
(_, g) ← liftMetaM stx $ Meta.revert g fvarIds;
setGoals (g :: gs)
| _ => throwUnsupportedSyntax
@[builtinTactic paren] def evalParen : Tactic :=
fun stx => evalTactic (stx.getArg 1)

View file

@ -913,8 +913,8 @@ lctx ← getLCtx;
pure $ resolveLocalNameAux lctx n []
/- Return true iff `stx` is a `Term.id`, and it is local variable. -/
def isLocalTermId? (stx : Syntax) : TermElabM (Option Expr) :=
match stx.isTermId? with
def isLocalTermId? (stx : Syntax) (relaxed : Bool := false) : TermElabM (Option Expr) :=
match stx.isTermId? relaxed with
| some (Syntax.ident _ _ val _, _) => do
r? ← resolveLocalName val;
match r? with

View file

@ -64,7 +64,7 @@ partial def formatAux : Option MessageDataContext → MessageData → Format
| none, ofExpr e => format (toString e)
| some ctx, ofExpr e => ppExpr ctx.env ctx.mctx ctx.lctx ctx.opts e
| none, ofGoal mvarId => "goal " ++ format (mkMVar mvarId)
| some ctx, ofGoal mvarId => ppGoal ctx.env ctx.mctx ctx.lctx ctx.opts mvarId
| some ctx, ofGoal mvarId => ppGoal ctx.env ctx.mctx ctx.opts mvarId
| _, withContext ctx d => formatAux (some ctx) d
| ctx, tagged cls d => Format.sbracket (format cls) ++ " " ++ formatAux ctx d
| ctx, nest n d => Format.nest n (formatAux ctx d)

View file

@ -168,5 +168,33 @@ traceCtx `Meta.appBuilder $ withNewMCtxDepth $ do
let fType := cinfo.instantiateTypeLevelParams us;
mkAppMAux f xs 0 #[] 0 #[] fType
def mkEqNDRec (motive h1 h2 : Expr) : MetaM Expr :=
if h2.isAppOf `Eq.refl then pure h1
else do
h2Type ← infer h2;
match h2Type.eq? with
| none => throwEx $ Exception.appBuilder `Eq.ndrec "equality proof expected" #[h2]
| some (α, a, b) => do
u2 ← getLevel α;
motiveType ← infer motive;
match motiveType with
| Expr.forallE _ _ (Expr.sort u1 _) _ =>
pure $ mkAppN (mkConst `Eq.ndrec [u1, u2]) #[α, a, motive, h1, b, h2]
| _ => throwEx $ Exception.appBuilder `Eq.ndrec "invalid motive" #[motive]
def mkEqRec (motive h1 h2 : Expr) : MetaM Expr :=
if h2.isAppOf `Eq.refl then pure h1
else do
h2Type ← infer h2;
match h2Type.eq? with
| none => throwEx $ Exception.appBuilder `Eq.rec "equality proof expected" #[h2]
| some (α, a, b) => do
u2 ← getLevel α;
motiveType ← infer motive;
match motiveType with
| Expr.forallE _ _ (Expr.forallE _ _ (Expr.sort u1 _) _) _ =>
pure $ mkAppN (mkConst `Eq.rec [u1, u2]) #[α, a, motive, h1, b, h2]
| _ => throwEx $ Exception.appBuilder `Eq.rec "invalid motive" #[motive]
end Meta
end Lean

View file

@ -294,6 +294,9 @@ match mctx.findDecl? mvarId with
| some d => pure d
| none => throwEx $ Exception.unknownExprMVar mvarId
def setMVarKind (mvarId : MVarId) (kind : MetavarKind) : MetaM Unit :=
modify $ fun s => { mctx := s.mctx.setMVarKind mvarId kind, .. s}
def isReadOnlyExprMVar (mvarId : MVarId) : MetaM Bool := do
mvarDecl ← getMVarDecl mvarId;
mctx ← getMCtx;
@ -414,8 +417,8 @@ if xs.isEmpty then pure e else liftMkBindingM $ MetavarContext.mkLambda xs e
def mkForallUsedOnly (xs : Array Expr) (e : Expr) : MetaM (Expr × Nat) :=
if xs.isEmpty then pure (e, 0) else liftMkBindingM $ MetavarContext.mkForallUsedOnly xs e
def elimMVarDeps (xs : Array Expr) (e : Expr) : MetaM Expr :=
if xs.isEmpty then pure e else liftMkBindingM $ MetavarContext.elimMVarDeps xs e
def elimMVarDeps (xs : Array Expr) (e : Expr) (preserveOrder : Bool := false) : MetaM Expr :=
if xs.isEmpty then pure e else liftMkBindingM $ MetavarContext.elimMVarDeps xs e preserveOrder
/-- Save cache, execute `x`, restore cache -/
@[inline] def savingCache {α} (x : MetaM α) : MetaM α := do
@ -796,16 +799,6 @@ mctx' ← getMCtx;
modify $ fun s => { mctx := mctx, .. s };
finally x (modify $ fun s => { mctx := mctx', .. s })
instance MetaHasEval {α} [MetaHasEval α] : MetaHasEval (MetaM α) :=
⟨fun env opts x => do
match x { config := { opts := opts }, currRecDepth := 0, maxRecDepth := getMaxRecDepth opts } { env := env } with
| EStateM.Result.ok a s => do
s.traceState.traces.forM $ fun m => IO.println $ format m;
MetaHasEval.eval s.env opts a
| EStateM.Result.error err s => do
s.traceState.traces.forM $ fun m => IO.println $ format m;
throw (IO.userError (toString err))⟩
@[init] private def regTraceClasses : IO Unit :=
registerTraceClass `Meta

View file

@ -84,6 +84,16 @@ def toMessageData : Exception → MessageData
end Exception
instance MetaHasEval {α} [MetaHasEval α] : MetaHasEval (MetaM α) :=
⟨fun env opts x => do
match x { config := { opts := opts }, currRecDepth := 0, maxRecDepth := getMaxRecDepth opts } { env := env } with
| EStateM.Result.ok a s => do
s.traceState.traces.forM $ fun m => IO.println $ format m;
MetaHasEval.eval s.env opts a
| EStateM.Result.error err s => do
s.traceState.traces.forM $ fun m => IO.println $ format m;
throw (IO.userError (toString (format err.toMessageData)))⟩
end Meta
namespace KernelException

View file

@ -8,3 +8,4 @@ import Init.Lean.Meta.Tactic.Intro
import Init.Lean.Meta.Tactic.Assumption
import Init.Lean.Meta.Tactic.Apply
import Init.Lean.Meta.Tactic.Revert
import Init.Lean.Meta.Tactic.Clear

View file

@ -0,0 +1,37 @@
/-
Copyright (c) 2020 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
prelude
import Init.Lean.Meta.Tactic.Util
namespace Lean
namespace Meta
def clear (mvarId : MVarId) (fvarId : FVarId) : MetaM MVarId :=
withMVarContext mvarId $ do
checkNotAssigned mvarId `clear;
lctx ← getLCtx;
unless (lctx.contains fvarId) $
throwTacticEx `clear mvarId ("unknown hypothesis '" ++ mkFVar fvarId ++ "'");
tag ← getMVarTag mvarId;
mctx ← getMCtx;
lctx.forM $ fun localDecl =>
unless (localDecl.fvarId == fvarId) $
when (mctx.localDeclDependsOn (fun fvarId' => fvarId' == fvarId) localDecl) $
throwTacticEx `clear mvarId ("hypothesis '" ++ localDecl.value ++ "' depends on '" ++ mkFVar fvarId ++ "'");
mvarDecl ← getMVarDecl mvarId;
when (mctx.exprDependsOn (fun fvarId' => fvarId' == fvarId) mvarDecl.type) $
throwTacticEx `clear mvarId ("taget depends on '" ++ mkFVar fvarId ++ "'");
let lctx := lctx.erase fvarId;
localInsts ← getLocalInstances;
let localInsts := match localInsts.findIdx? $ fun localInst => localInst.fvar.fvarId! == fvarId with
| none => localInsts
| some idx => localInsts.eraseIdx idx;
newMVar ← mkFreshExprMVarAt lctx localInsts mvarDecl.type tag MetavarKind.syntheticOpaque;
modify $ fun s => { mctx := s.mctx.assignExpr mvarId newMVar, .. s };
pure newMVar.mvarId!
end Meta
end Lean

View file

@ -49,27 +49,28 @@ def introNCoreAux {σ} (mvarId : MVarId) (mkName : LocalContext → Name → σ
else
throwTacticEx `introN mvarId "insufficient number of binders"
@[specialize] def introNCore {σ} (mvarId : MVarId) (n : Nat) (mkName : LocalContext → Name → σ → Name × σ) (s : σ) : MetaM (Array Expr × MVarId) :=
@[specialize] def introNCore {σ} (mvarId : MVarId) (n : Nat) (mkName : LocalContext → Name → σ → Name × σ) (s : σ) : MetaM (Array FVarId × MVarId) :=
withMVarContext mvarId $ do
checkNotAssigned mvarId `introN;
mvarType ← getMVarType mvarId;
lctx ← getLCtx;
introNCoreAux mvarId mkName n lctx #[] 0 s mvarType
(fvars, mvarId) ← introNCoreAux mvarId mkName n lctx #[] 0 s mvarType;
pure (fvars.map Expr.fvarId!, mvarId)
def mkAuxName (lctx : LocalContext) (defaultName : Name) : List Name → Name × List Name
| [] => (lctx.getUnusedName defaultName, [])
| n :: rest => (if n == "_" then lctx.getUnusedName defaultName else n, rest)
def introN (mvarId : MVarId) (n : Nat) (givenNames : List Name := []) : MetaM (Array Expr × MVarId) :=
def introN (mvarId : MVarId) (n : Nat) (givenNames : List Name := []) : MetaM (Array FVarId × MVarId) :=
introNCore mvarId n mkAuxName givenNames
def intro (mvarId : MVarId) (name : Name) : MetaM (Expr × MVarId) := do
(fvars, mvarId) ← introN mvarId 1 [name];
pure (fvars.get! 0, mvarId)
def intro (mvarId : MVarId) (name : Name) : MetaM (FVarId × MVarId) := do
(fvarIds, mvarId) ← introN mvarId 1 [name];
pure (fvarIds.get! 0, mvarId)
def intro1 (mvarId : MVarId) : MetaM (Expr × MVarId) := do
(fvars, mvarId) ← introN mvarId 1 [];
pure (fvars.get! 0, mvarId)
def intro1 (mvarId : MVarId) : MetaM (FVarId × MVarId) := do
(fvarIds, mvarId) ← introN mvarId 1 [];
pure (fvarIds.get! 0, mvarId)
end Meta
end Lean

View file

@ -9,11 +9,13 @@ import Init.Lean.Meta.Tactic.Util
namespace Lean
namespace Meta
def revert (mvarId : MVarId) (fvars : Array FVarId) : MetaM (Array FVarId × MVarId) :=
def revert (mvarId : MVarId) (fvars : Array FVarId) (preserveOrder : Bool := false) : MetaM (Array FVarId × MVarId) :=
if fvars.isEmpty then pure (fvars, mvarId)
else withMVarContext mvarId $ do
checkNotAssigned mvarId `revert;
e ← elimMVarDeps (fvars.map mkFVar) (mkMVar mvarId);
-- Set metavariable kind to natural to make sure `elimMVarDeps` will assign it.
setMVarKind mvarId MetavarKind.natural;
e ← finally (elimMVarDeps (fvars.map mkFVar) (mkMVar mvarId) preserveOrder) (setMVarKind mvarId MetavarKind.syntheticOpaque);
pure $ e.withApp $ fun mvar args => (args.map Expr.fvarId!, mvar.mvarId!)
end Meta

View file

@ -30,9 +30,8 @@ pure mvarDecl.type
def ppGoal (mvarId : MVarId) : MetaM Format := do
env ← getEnv;
mctx ← getMCtx;
lctx ← getLCtx;
opts ← getOptions;
pure $ ppGoal env mctx lctx opts mvarId
pure $ ppGoal env mctx opts mvarId
@[init] private def regTraceClasses : IO Unit :=
registerTraceClass `Meta.Tactic

View file

@ -323,6 +323,10 @@ match mctx.decls.find? mvarId with
| some decl => decl
| none => panic! "unknown metavariable"
def setMVarKind (mctx : MetavarContext) (mvarId : MVarId) (kind : MetavarKind) : MetavarContext :=
let decl := mctx.getDecl mvarId;
{ decls := mctx.decls.insert mvarId { kind := kind, .. decl }, .. mctx }
def findLevelDepth? (mctx : MetavarContext) (mvarId : MVarId) : Option Nat :=
mctx.lDepth.find? mvarId
@ -654,7 +658,10 @@ structure State :=
(ngen : NameGenerator)
(cache : HashMap Expr Expr := {}) --
abbrev M := EStateM Exception State
abbrev MCore := EStateM Exception State
abbrev M := ReaderT Bool (EStateM Exception State)
def preserveOrder : M Bool := read
instance : MonadHashMapCacheAdapter Expr Expr M :=
{ getCache := do s ← get; pure s.cache,
@ -674,13 +681,30 @@ xs.foldlFrom
in `lctx` that may depend on `toRevert`.
Remark: the result is sorted by `LocalDecl` indices. -/
private def collectDeps (mctx : MetavarContext) (lctx : LocalContext) (toRevert : Array Expr) : Except Exception (Array Expr) :=
private def collectDeps (mctx : MetavarContext) (lctx : LocalContext) (toRevert : Array Expr) (preserveOrder : Bool) : Except Exception (Array Expr) :=
if toRevert.size == 0 then pure toRevert
else
let minDecl := getLocalDeclWithSmallestIdx lctx toRevert;
else do
when preserveOrder $ do {
-- Make sure none of `toRevert` is an AuxDecl
-- Make sure toRevert[j] does not depend on toRevert[i] for j > i
toRevert.size.forM $ fun i => do
let fvar := toRevert.get! i;
let decl := lctx.getFVar! fvar;
when decl.binderInfo.isAuxDecl $
throw (Exception.revertFailure mctx lctx toRevert decl);
i.forM $ fun j =>
let prevFVar := toRevert.get! j;
let prevDecl := lctx.getFVar! prevFVar;
when (localDeclDependsOn mctx (fun fvarId => fvarId == fvar.fvarId!) prevDecl) $
throw (Exception.revertFailure mctx lctx toRevert prevDecl)
};
let newToRevert := if preserveOrder then toRevert else Array.mkEmpty toRevert.size;
let firstDeclToVisit := if preserveOrder then lctx.getFVar! toRevert.back else getLocalDeclWithSmallestIdx lctx toRevert;
let skipFirst := preserveOrder;
lctx.foldlFromM
(fun newToRevert decl =>
if toRevert.any (fun x => decl.fvarId == x.fvarId!) then
(fun (newToRevert : Array Expr) decl =>
if skipFirst && decl.index == firstDeclToVisit.index then pure newToRevert
else if toRevert.any (fun x => decl.fvarId == x.fvarId!) then
pure (newToRevert.push decl.toExpr)
else if localDeclDependsOn mctx (fun fvarId => newToRevert.any $ fun x => x.fvarId! == fvarId) decl then
if decl.binderInfo.isAuxDecl then
@ -689,8 +713,8 @@ else
pure (newToRevert.push decl.toExpr)
else
pure newToRevert)
(Array.mkEmpty toRevert.size)
minDecl
newToRevert
firstDeclToVisit
/-- Create a new `LocalContext` by removing the free variables in `toRevert` from `lctx`.
We use this function when we create auxiliary metavariables at `elimMVarDepsAux`. -/
@ -806,7 +830,8 @@ private partial def elimMVarDepsApp (elimMVarDepsAux : Expr → M Expr) (xs : Ar
-/
let continue (nestedFVars : Array Expr) : M Expr := do {
args ← args.mapM (visit elimMVarDepsAux);
match collectDeps mctx mvarLCtx toRevert with
preserve ← preserveOrder;
match collectDeps mctx mvarLCtx toRevert preserve with
| Except.error ex => throw ex
| Except.ok toRevert => do
let newMVarLCtx := reduceLocalContext mvarLCtx toRevert;
@ -888,13 +913,13 @@ xs.size.foldRevM
end MkBinding
abbrev MkBindingM := ReaderT LocalContext MkBinding.M
abbrev MkBindingM := ReaderT LocalContext MkBinding.MCore
def elimMVarDeps (xs : Array Expr) (e : Expr) : MkBindingM Expr :=
fun _ => MkBinding.elimMVarDeps xs e
def elimMVarDeps (xs : Array Expr) (e : Expr) (preserveOrder : Bool) : MkBindingM Expr :=
fun _ => MkBinding.elimMVarDeps xs e preserveOrder
def mkBinding (isLambda : Bool) (xs : Array Expr) (e : Expr) (usedOnly : Bool := false) : MkBindingM (Expr × Nat) :=
fun lctx => MkBinding.mkBinding isLambda lctx xs e usedOnly
fun lctx => MkBinding.mkBinding isLambda lctx xs e usedOnly false
@[inline] def mkLambda (xs : Array Expr) (e : Expr) : MkBindingM Expr := do
(e, _) ← mkBinding true xs e;

View file

@ -43,6 +43,8 @@ def nonEmptySeq : Parser := node `Lean.Parser.Tactic.seq $ sepBy1 tacticParser "
@[builtinTacticParser] def «intro» := parser! nonReservedSymbol "intro " >> optional ident'
@[builtinTacticParser] def «intros» := parser! nonReservedSymbol "intros " >> many ident'
@[builtinTacticParser] def «revert» := parser! nonReservedSymbol "revert " >> many1 ident
@[builtinTacticParser] def «clear» := parser! nonReservedSymbol "clear " >> many1 ident
@[builtinTacticParser] def «subst» := parser! nonReservedSymbol "subst " >> many1 ident
@[builtinTacticParser] def «assumption» := parser! nonReservedSymbol "assumption"
@[builtinTacticParser] def «apply» := parser! nonReservedSymbol "apply " >> termParser
@[builtinTacticParser] def «exact» := parser! nonReservedSymbol "exact " >> termParser

View file

@ -8,11 +8,12 @@ import Init.Lean.Util.PPExt
namespace Lean
def ppGoal (env : Environment) (mctx : MetavarContext) (lctx : LocalContext) (opts : Options) (mvarId : MVarId) : Format :=
def ppGoal (env : Environment) (mctx : MetavarContext) (opts : Options) (mvarId : MVarId) : Format :=
match mctx.findDecl? mvarId with
| none => "unknown goal"
| some mvarDecl =>
let indent := 2; -- Use option
let lctx := mvarDecl.lctx;
let pp (e : Expr) : Format := ppExpr env mctx lctx opts e;
let instMVars (e : Expr) : Expr := (mctx.instantiateMVars e).1;
let addLine (fmt : Format) : Format := if fmt.isNil then fmt else fmt ++ Format.line;
@ -21,7 +22,7 @@ match mctx.findDecl? mvarId with
match ids, type? with
| [], _ => fmt
| _, none => fmt
| _, some type => fmt ++ (Format.joinSep ids " " ++ " :" ++ Format.nest indent (Format.line ++ pp type)).group;
| _, some type => fmt ++ (Format.joinSep ids.reverse " " ++ " :" ++ Format.nest indent (Format.line ++ pp type)).group;
let (varNames, type?, fmt) := mvarDecl.lctx.foldl
(fun (acc : List Name × Option Expr × Format) (localDecl : LocalDecl) =>
let (varNames, prevType?, fmt) := acc;

File diff suppressed because one or more lines are too long

View file

@ -160,7 +160,6 @@ lean_object* l___private_Init_Lean_Elab_App_7__hasTypeMVar___boxed(lean_object*,
lean_object* l_Lean_Elab_Term_addNamedArg___closed__3;
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Elab_Term_mkConst___closed__4;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabArrayRef___closed__2;
lean_object* l___private_Init_Lean_Elab_App_24__mergeFailures___rarg___closed__2;
lean_object* l_ReaderT_pure___at___private_Init_Lean_Elab_App_26__expandApp___spec__2(lean_object*);
@ -267,6 +266,7 @@ lean_object* l_Lean_mkLevelSucc(lean_object*);
lean_object* l___private_Init_Lean_Elab_App_13__resolveLValAux___closed__9;
lean_object* l_Lean_Elab_Term_getLCtx(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_App_13__resolveLValAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
lean_object* l_Lean_Elab_Term_elabSortApp(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkApp(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_App_13__resolveLValAux___closed__27;
@ -5767,7 +5767,7 @@ lean_ctor_set(x_82, 0, x_65);
x_83 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_83, 0, x_81);
lean_ctor_set(x_83, 1, x_82);
x_84 = l_Lean_Elab_Term_mkConst___closed__4;
x_84 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_85 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_85, 0, x_83);
lean_ctor_set(x_85, 1, x_84);
@ -5826,7 +5826,7 @@ lean_ctor_set(x_99, 0, x_65);
x_100 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_100, 0, x_98);
lean_ctor_set(x_100, 1, x_99);
x_101 = l_Lean_Elab_Term_mkConst___closed__4;
x_101 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_102 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_102, 0, x_100);
lean_ctor_set(x_102, 1, x_101);
@ -5902,7 +5902,7 @@ lean_ctor_set(x_117, 0, x_65);
x_118 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_118, 0, x_116);
lean_ctor_set(x_118, 1, x_117);
x_119 = l_Lean_Elab_Term_mkConst___closed__4;
x_119 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_120 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_120, 0, x_118);
lean_ctor_set(x_120, 1, x_119);
@ -5962,7 +5962,7 @@ lean_ctor_set(x_135, 0, x_65);
x_136 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_136, 0, x_134);
lean_ctor_set(x_136, 1, x_135);
x_137 = l_Lean_Elab_Term_mkConst___closed__4;
x_137 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_138 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_138, 0, x_136);
lean_ctor_set(x_138, 1, x_137);
@ -6066,7 +6066,7 @@ lean_ctor_set(x_165, 0, x_148);
x_166 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_166, 0, x_164);
lean_ctor_set(x_166, 1, x_165);
x_167 = l_Lean_Elab_Term_mkConst___closed__4;
x_167 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_168 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_168, 0, x_166);
lean_ctor_set(x_168, 1, x_167);
@ -6125,7 +6125,7 @@ lean_ctor_set(x_182, 0, x_148);
x_183 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_183, 0, x_181);
lean_ctor_set(x_183, 1, x_182);
x_184 = l_Lean_Elab_Term_mkConst___closed__4;
x_184 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_185 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_185, 0, x_183);
lean_ctor_set(x_185, 1, x_184);
@ -6201,7 +6201,7 @@ lean_ctor_set(x_200, 0, x_148);
x_201 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_201, 0, x_199);
lean_ctor_set(x_201, 1, x_200);
x_202 = l_Lean_Elab_Term_mkConst___closed__4;
x_202 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_203 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_203, 0, x_201);
lean_ctor_set(x_203, 1, x_202);
@ -6261,7 +6261,7 @@ lean_ctor_set(x_218, 0, x_148);
x_219 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_219, 0, x_217);
lean_ctor_set(x_219, 1, x_218);
x_220 = l_Lean_Elab_Term_mkConst___closed__4;
x_220 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_221 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_221, 0, x_219);
lean_ctor_set(x_221, 1, x_220);
@ -6395,7 +6395,7 @@ lean_ctor_set(x_252, 0, x_235);
x_253 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_253, 0, x_251);
lean_ctor_set(x_253, 1, x_252);
x_254 = l_Lean_Elab_Term_mkConst___closed__4;
x_254 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_255 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_255, 0, x_253);
lean_ctor_set(x_255, 1, x_254);
@ -6460,7 +6460,7 @@ lean_ctor_set(x_270, 0, x_235);
x_271 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_271, 0, x_269);
lean_ctor_set(x_271, 1, x_270);
x_272 = l_Lean_Elab_Term_mkConst___closed__4;
x_272 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_273 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_273, 0, x_271);
lean_ctor_set(x_273, 1, x_272);
@ -6576,7 +6576,7 @@ lean_ctor_set(x_300, 0, x_283);
x_301 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_301, 0, x_299);
lean_ctor_set(x_301, 1, x_300);
x_302 = l_Lean_Elab_Term_mkConst___closed__4;
x_302 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_303 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_303, 0, x_301);
lean_ctor_set(x_303, 1, x_302);
@ -6641,7 +6641,7 @@ lean_ctor_set(x_318, 0, x_283);
x_319 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_319, 0, x_317);
lean_ctor_set(x_319, 1, x_318);
x_320 = l_Lean_Elab_Term_mkConst___closed__4;
x_320 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_321 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_321, 0, x_319);
lean_ctor_set(x_321, 1, x_320);
@ -6748,7 +6748,7 @@ x_341 = l___private_Init_Lean_Elab_App_13__resolveLValAux___closed__28;
x_342 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_342, 0, x_341);
lean_ctor_set(x_342, 1, x_340);
x_343 = l_Lean_Elab_Term_mkConst___closed__4;
x_343 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_344 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_344, 0, x_342);
lean_ctor_set(x_344, 1, x_343);
@ -6791,7 +6791,7 @@ x_353 = l___private_Init_Lean_Elab_App_13__resolveLValAux___closed__28;
x_354 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_354, 0, x_353);
lean_ctor_set(x_354, 1, x_352);
x_355 = l_Lean_Elab_Term_mkConst___closed__4;
x_355 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_356 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_356, 0, x_354);
lean_ctor_set(x_356, 1, x_355);
@ -7644,7 +7644,7 @@ x_37 = l___private_Init_Lean_Elab_App_17__addLValArg___main___closed__12;
x_38 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_38, 0, x_37);
lean_ctor_set(x_38, 1, x_36);
x_39 = l_Lean_Elab_Term_mkConst___closed__4;
x_39 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_40 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_40, 0, x_38);
lean_ctor_set(x_40, 1, x_39);

View file

@ -148,7 +148,6 @@ lean_object* l_Lean_Elab_getPos___at_Lean_Elab_Command_throwError___spec__2___bo
extern lean_object* l_Lean_Elab_Exception_inhabited___closed__1;
lean_object* l_Lean_Elab_Command_Scope_inhabited;
extern lean_object* l_Lean_Parser_Command_section___elambda__1___closed__1;
extern lean_object* l_Lean_Meta_MetaHasEval___rarg___closed__4;
lean_object* l_Lean_Name_getNumParts___main(lean_object*);
lean_object* l_Lean_Elab_Command_elabOpen(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_mkMessageAt___at_Lean_Elab_Command_throwError___spec__3(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*);
@ -259,7 +258,6 @@ uint8_t l_HashMapImp_contains___at_Lean_Elab_Command_addBuiltinCommandElab___spe
lean_object* l_Lean_Elab_Command_expandDeclId___boxed(lean_object*);
lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabSetOption(lean_object*);
lean_object* l_Lean_Elab_Command_elabOpenRenaming(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Elab_Term_mkConst___closed__4;
lean_object* l_List_lengthAux___main___rarg(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_resolveNamespace(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_addBuiltinCommandElab___closed__1;
@ -356,6 +354,7 @@ lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabEnd(lean_object*);
lean_object* l_Lean_Elab_Command_throwAlreadyDeclaredUniverseLevel___rarg___closed__1;
extern lean_object* l_Lean_Elab_Term_elabTermAux___main___closed__3;
lean_object* l___private_Init_Lean_Elab_Command_13__addNamespace___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_IO_runMeta___rarg___closed__4;
extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3;
lean_object* l_Lean_Elab_Command_withMacroExpansion(lean_object*);
lean_object* l_Lean_Elab_Command_withDeclId___closed__3;
@ -405,6 +404,7 @@ lean_object* lean_environment_main_module(lean_object*);
lean_object* l___regBuiltinCommandElab_Lean_Elab_Command_elabOpen___closed__1;
lean_object* l_Lean_Elab_Command_elabVariables___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabExport___closed__1;
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
lean_object* l_Lean_Elab_Command_getScope(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabEnd___closed__6;
lean_object* l_Lean_Elab_Command_elabExport___boxed(lean_object*, lean_object*, lean_object*);
@ -7977,7 +7977,7 @@ x_2 = lean_ctor_get(x_1, 0);
x_3 = lean_ctor_get(x_1, 1);
x_4 = lean_ctor_get(x_1, 3);
x_5 = l_Lean_MetavarContext_Inhabited___closed__1;
x_6 = l_Lean_Meta_MetaHasEval___rarg___closed__4;
x_6 = l_IO_runMeta___rarg___closed__4;
x_7 = l_Lean_NameGenerator_Inhabited___closed__3;
x_8 = l_Lean_TraceState_Inhabited___closed__1;
x_9 = l_PersistentArray_empty___closed__3;
@ -12960,7 +12960,7 @@ x_9 = l_Lean_Elab_Command_logUnknownDecl___closed__2;
x_10 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_10, 0, x_9);
lean_ctor_set(x_10, 1, x_8);
x_11 = l_Lean_Elab_Term_mkConst___closed__4;
x_11 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_12 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_12, 0, x_10);
lean_ctor_set(x_12, 1, x_11);

View file

@ -165,7 +165,6 @@ lean_object* l___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___cl
lean_object* l___private_Init_Lean_Elab_Quotation_8__explodeHeadPat___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Term_Quotation_match__syntax_expand___spec__1___lambda__1___boxed(lean_object*);
extern lean_object* l_Lean_Meta_MetaHasEval___rarg___closed__4;
lean_object* l___private_Init_Lean_Elab_Quotation_7__getHeadInfo___elambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__47;
lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___spec__1___closed__7;
@ -375,6 +374,7 @@ lean_object* l___private_Init_Lean_Elab_Quotation_11__letBindRhss___main___close
lean_object* l_Lean_mkFVar(lean_object*);
lean_object* l_List_head_x21___at___private_Init_Lean_Elab_Quotation_9__compileStxMatch___main___spec__2___closed__3;
lean_object* l_Lean_Elab_Term_TermElabM_inhabited___boxed(lean_object*, lean_object*);
extern lean_object* l_IO_runMeta___rarg___closed__4;
extern lean_object* l_Lean_nullKind___closed__1;
lean_object* l_List_foldl___main___at___private_Init_Lean_Elab_Quotation_13__toPreterm___main___spec__8(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Quotation_8__explodeHeadPat___closed__3;
@ -25235,7 +25235,7 @@ lean_ctor_set_uint8(x_21, sizeof(void*)*10, x_20);
lean_ctor_set_uint8(x_21, sizeof(void*)*10 + 1, x_20);
lean_ctor_set_uint8(x_21, sizeof(void*)*10 + 2, x_20);
x_22 = l_Lean_MetavarContext_Inhabited___closed__1;
x_23 = l_Lean_Meta_MetaHasEval___rarg___closed__4;
x_23 = l_IO_runMeta___rarg___closed__4;
x_24 = l_Lean_NameGenerator_Inhabited___closed__3;
x_25 = l_Lean_TraceState_Inhabited___closed__1;
x_26 = l_PersistentArray_empty___closed__3;

View file

@ -13,7 +13,6 @@
#ifdef __cplusplus
extern "C" {
#endif
extern lean_object* l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
lean_object* l_Lean_Elab_Term_StructInst_formatStruct___main(lean_object*);
lean_object* l___private_Init_Lean_Elab_StructInst_17__groupFields(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_Struct_modifyFields(lean_object*, lean_object*);
@ -163,7 +162,6 @@ lean_object* l___private_Init_Lean_Elab_StructInst_14__getFieldIdx___boxed(lean_
extern lean_object* l_Lean_formatEntry___closed__2;
lean_object* l___private_Init_Lean_Elab_StructInst_4__elabModifyOp___closed__3;
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Elab_Term_mkConst___closed__4;
lean_object* l_Array_iterateMAux___main___at___private_Init_Lean_Elab_StructInst_18__expandStruct___main___spec__8(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_12__mkFieldMap___spec__2(lean_object*, lean_object*);
lean_object* l_HashMapImp_find_x3f___at___private_Init_Lean_Elab_StructInst_12__mkFieldMap___spec__1(lean_object*, lean_object*);
@ -244,6 +242,7 @@ lean_object* l_Lean_Elab_Term_StructInst_formatField___closed__1;
lean_object* l_List_map___main___at___private_Init_Lean_Elab_StructInst_7__mkStructView___spec__3(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_Source_hasFormat___closed__1;
lean_object* l_Lean_Syntax_setArg(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
lean_object* l_Lean_Elab_Term_StructInst_Struct_modifyFieldsM___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_Source_hasFormat___closed__4;
lean_object* l_AssocList_find___main___at___private_Init_Lean_Elab_StructInst_12__mkFieldMap___spec__2___boxed(lean_object*, lean_object*);
@ -314,7 +313,7 @@ lean_object* l___private_Init_Lean_Elab_StructInst_5__getStructName___closed__1;
lean_object* l_Lean_Elab_Term_StructInst_Field_inhabited___closed__2;
uint8_t l_Lean_isStructureLike(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_StructInst_5__getStructName___closed__2;
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_indentExpr(lean_object*);
lean_object* l___private_Init_Lean_Elab_StructInst_19__elabStructInstAux___closed__9;
lean_object* l___private_Init_Lean_Elab_StructInst_1__expandNonAtomicExplicitSource(lean_object*, lean_object*, lean_object*);
@ -334,6 +333,7 @@ lean_object* l___private_Init_Lean_Elab_StructInst_17__groupFields___lambda__2__
lean_object* l___private_Init_Lean_Elab_StructInst_5__getStructName___closed__4;
extern lean_object* l_addParenHeuristic___closed__1;
lean_object* l_Lean_Elab_Term_StructInst_elabStructInst___closed__2;
extern lean_object* l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
lean_object* l___private_Init_Lean_Elab_StructInst_17__groupFields___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_StructInst_17__groupFields___lambda__3___closed__1;
lean_object* l___private_Init_Lean_Elab_StructInst_19__elabStructInstAux___closed__4;
@ -468,206 +468,208 @@ x_34 = l_Lean_Syntax_getArg(x_12, x_33);
x_35 = l_Lean_Syntax_isNone(x_34);
if (x_35 == 0)
{
lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39;
lean_object* x_36; lean_object* x_37; uint8_t x_38; lean_object* x_39; lean_object* x_40;
x_36 = lean_unsigned_to_nat(0u);
x_37 = l_Lean_Syntax_getArg(x_34, x_36);
x_38 = 0;
lean_inc(x_37);
x_38 = l_Lean_Elab_Term_isLocalTermId_x3f(x_37, x_4, x_5);
x_39 = lean_ctor_get(x_38, 0);
lean_inc(x_39);
if (lean_obj_tag(x_39) == 0)
{
lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; uint8_t x_60; lean_object* x_61; lean_object* x_62; lean_object* x_63;
lean_dec(x_32);
x_40 = lean_ctor_get(x_38, 1);
x_39 = l_Lean_Elab_Term_isLocalTermId_x3f(x_37, x_38, x_4, x_5);
x_40 = lean_ctor_get(x_39, 0);
lean_inc(x_40);
lean_dec(x_38);
x_41 = l_Lean_Elab_Term_getCurrMacroScope(x_4, x_40);
x_42 = lean_ctor_get(x_41, 0);
lean_inc(x_42);
x_43 = lean_ctor_get(x_41, 1);
if (lean_obj_tag(x_40) == 0)
{
lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59; lean_object* x_60; uint8_t x_61; lean_object* x_62; lean_object* x_63; lean_object* x_64;
lean_dec(x_32);
x_41 = lean_ctor_get(x_39, 1);
lean_inc(x_41);
lean_dec(x_39);
x_42 = l_Lean_Elab_Term_getCurrMacroScope(x_4, x_41);
x_43 = lean_ctor_get(x_42, 0);
lean_inc(x_43);
lean_dec(x_41);
x_44 = l_Lean_Elab_Term_getMainModule___rarg(x_43);
x_45 = lean_ctor_get(x_44, 0);
lean_inc(x_45);
x_46 = lean_ctor_get(x_44, 1);
x_44 = lean_ctor_get(x_42, 1);
lean_inc(x_44);
lean_dec(x_42);
x_45 = l_Lean_Elab_Term_getMainModule___rarg(x_44);
x_46 = lean_ctor_get(x_45, 0);
lean_inc(x_46);
lean_dec(x_44);
x_47 = lean_box(0);
x_48 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__3;
x_49 = l_Lean_addMacroScope(x_45, x_48, x_42);
x_50 = lean_box(0);
x_51 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__2;
x_52 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_52, 0, x_47);
lean_ctor_set(x_52, 1, x_51);
lean_ctor_set(x_52, 2, x_49);
lean_ctor_set(x_52, 3, x_50);
x_53 = l_Array_empty___closed__1;
x_54 = lean_array_push(x_53, x_52);
x_55 = l___private_Init_Lean_Elab_Term_5__expandCDot___main___closed__4;
x_56 = lean_array_push(x_54, x_55);
x_57 = l_Lean_mkTermIdFromIdent___closed__2;
x_58 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_58, 0, x_57);
lean_ctor_set(x_58, 1, x_56);
x_59 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_59, 0, x_37);
x_60 = 1;
lean_ctor_set(x_3, 0, x_59);
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_60);
x_61 = l_Lean_Syntax_setArg(x_34, x_36, x_58);
x_47 = lean_ctor_get(x_45, 1);
lean_inc(x_47);
lean_dec(x_45);
x_48 = lean_box(0);
x_49 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__3;
x_50 = l_Lean_addMacroScope(x_46, x_49, x_43);
x_51 = lean_box(0);
x_52 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__2;
x_53 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_53, 0, x_48);
lean_ctor_set(x_53, 1, x_52);
lean_ctor_set(x_53, 2, x_50);
lean_ctor_set(x_53, 3, x_51);
x_54 = l_Array_empty___closed__1;
x_55 = lean_array_push(x_54, x_53);
x_56 = l___private_Init_Lean_Elab_Term_5__expandCDot___main___closed__4;
x_57 = lean_array_push(x_55, x_56);
x_58 = l_Lean_mkTermIdFromIdent___closed__2;
x_59 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_59, 0, x_58);
lean_ctor_set(x_59, 1, x_57);
x_60 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_60, 0, x_37);
x_61 = 1;
lean_ctor_set(x_3, 0, x_60);
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_61);
x_62 = l_Lean_Syntax_setArg(x_34, x_36, x_59);
lean_inc(x_12);
x_62 = l_Lean_Syntax_setArg(x_12, x_33, 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_3);
x_16 = x_63;
x_17 = x_46;
x_63 = l_Lean_Syntax_setArg(x_12, x_33, x_62);
x_64 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_64, 0, x_63);
lean_ctor_set(x_64, 1, x_3);
x_16 = x_64;
x_17 = x_47;
goto block_25;
}
else
{
lean_object* x_64; uint8_t x_65; lean_object* x_66;
lean_dec(x_39);
lean_object* x_65; uint8_t x_66; lean_object* x_67;
lean_dec(x_40);
lean_dec(x_37);
lean_dec(x_34);
x_64 = lean_ctor_get(x_38, 1);
lean_inc(x_64);
lean_dec(x_38);
x_65 = 1;
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_65);
x_65 = lean_ctor_get(x_39, 1);
lean_inc(x_65);
lean_dec(x_39);
x_66 = 1;
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_66);
lean_inc(x_12);
x_66 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_66, 0, x_12);
lean_ctor_set(x_66, 1, x_3);
x_16 = x_66;
x_17 = x_64;
x_67 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_67, 0, x_12);
lean_ctor_set(x_67, 1, x_3);
x_16 = x_67;
x_17 = x_65;
goto block_25;
}
}
else
{
uint8_t x_67; lean_object* x_68;
uint8_t x_68; lean_object* x_69;
lean_dec(x_34);
x_67 = 1;
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_67);
x_68 = 1;
lean_ctor_set_uint8(x_3, sizeof(void*)*1, x_68);
lean_inc(x_12);
x_68 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_68, 0, x_12);
lean_ctor_set(x_68, 1, x_3);
x_16 = x_68;
x_69 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_69, 0, x_12);
lean_ctor_set(x_69, 1, x_3);
x_16 = x_69;
x_17 = x_5;
goto block_25;
}
}
else
{
lean_object* x_69; lean_object* x_70; lean_object* x_71; uint8_t x_72;
x_69 = lean_ctor_get(x_3, 0);
lean_inc(x_69);
lean_object* x_70; lean_object* x_71; lean_object* x_72; uint8_t x_73;
x_70 = lean_ctor_get(x_3, 0);
lean_inc(x_70);
lean_dec(x_3);
x_70 = lean_unsigned_to_nat(1u);
x_71 = l_Lean_Syntax_getArg(x_12, x_70);
x_72 = l_Lean_Syntax_isNone(x_71);
if (x_72 == 0)
x_71 = lean_unsigned_to_nat(1u);
x_72 = l_Lean_Syntax_getArg(x_12, x_71);
x_73 = l_Lean_Syntax_isNone(x_72);
if (x_73 == 0)
{
lean_object* x_73; lean_object* x_74; lean_object* x_75; lean_object* x_76;
x_73 = lean_unsigned_to_nat(0u);
x_74 = l_Lean_Syntax_getArg(x_71, x_73);
lean_inc(x_74);
x_75 = l_Lean_Elab_Term_isLocalTermId_x3f(x_74, x_4, x_5);
x_76 = lean_ctor_get(x_75, 0);
lean_inc(x_76);
if (lean_obj_tag(x_76) == 0)
lean_object* x_74; lean_object* x_75; uint8_t x_76; lean_object* x_77; lean_object* x_78;
x_74 = lean_unsigned_to_nat(0u);
x_75 = l_Lean_Syntax_getArg(x_72, x_74);
x_76 = 0;
lean_inc(x_75);
x_77 = l_Lean_Elab_Term_isLocalTermId_x3f(x_75, x_76, x_4, x_5);
x_78 = lean_ctor_get(x_77, 0);
lean_inc(x_78);
if (lean_obj_tag(x_78) == 0)
{
lean_object* x_77; lean_object* x_78; lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; uint8_t x_97; lean_object* x_98; lean_object* x_99; lean_object* x_100; lean_object* x_101;
lean_dec(x_69);
x_77 = lean_ctor_get(x_75, 1);
lean_inc(x_77);
lean_dec(x_75);
x_78 = l_Lean_Elab_Term_getCurrMacroScope(x_4, x_77);
x_79 = lean_ctor_get(x_78, 0);
lean_object* x_79; lean_object* x_80; lean_object* x_81; lean_object* x_82; lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93; lean_object* x_94; lean_object* x_95; lean_object* x_96; lean_object* x_97; lean_object* x_98; uint8_t x_99; lean_object* x_100; lean_object* x_101; lean_object* x_102; lean_object* x_103;
lean_dec(x_70);
x_79 = lean_ctor_get(x_77, 1);
lean_inc(x_79);
x_80 = lean_ctor_get(x_78, 1);
lean_inc(x_80);
lean_dec(x_78);
x_81 = l_Lean_Elab_Term_getMainModule___rarg(x_80);
x_82 = lean_ctor_get(x_81, 0);
lean_dec(x_77);
x_80 = l_Lean_Elab_Term_getCurrMacroScope(x_4, x_79);
x_81 = lean_ctor_get(x_80, 0);
lean_inc(x_81);
x_82 = lean_ctor_get(x_80, 1);
lean_inc(x_82);
x_83 = lean_ctor_get(x_81, 1);
lean_inc(x_83);
lean_dec(x_81);
x_84 = lean_box(0);
x_85 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__3;
x_86 = l_Lean_addMacroScope(x_82, x_85, x_79);
x_87 = lean_box(0);
x_88 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__2;
x_89 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_89, 0, x_84);
lean_ctor_set(x_89, 1, x_88);
lean_ctor_set(x_89, 2, x_86);
lean_ctor_set(x_89, 3, x_87);
x_90 = l_Array_empty___closed__1;
x_91 = lean_array_push(x_90, x_89);
x_92 = l___private_Init_Lean_Elab_Term_5__expandCDot___main___closed__4;
x_93 = lean_array_push(x_91, x_92);
x_94 = l_Lean_mkTermIdFromIdent___closed__2;
x_95 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_95, 0, x_94);
lean_ctor_set(x_95, 1, x_93);
x_96 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_96, 0, x_74);
x_97 = 1;
x_98 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_98, 0, x_96);
lean_ctor_set_uint8(x_98, sizeof(void*)*1, x_97);
x_99 = l_Lean_Syntax_setArg(x_71, x_73, x_95);
lean_dec(x_80);
x_83 = l_Lean_Elab_Term_getMainModule___rarg(x_82);
x_84 = lean_ctor_get(x_83, 0);
lean_inc(x_84);
x_85 = lean_ctor_get(x_83, 1);
lean_inc(x_85);
lean_dec(x_83);
x_86 = lean_box(0);
x_87 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__3;
x_88 = l_Lean_addMacroScope(x_84, x_87, x_81);
x_89 = lean_box(0);
x_90 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__2;
x_91 = lean_alloc_ctor(3, 4, 0);
lean_ctor_set(x_91, 0, x_86);
lean_ctor_set(x_91, 1, x_90);
lean_ctor_set(x_91, 2, x_88);
lean_ctor_set(x_91, 3, x_89);
x_92 = l_Array_empty___closed__1;
x_93 = lean_array_push(x_92, x_91);
x_94 = l___private_Init_Lean_Elab_Term_5__expandCDot___main___closed__4;
x_95 = lean_array_push(x_93, x_94);
x_96 = l_Lean_mkTermIdFromIdent___closed__2;
x_97 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_97, 0, x_96);
lean_ctor_set(x_97, 1, x_95);
x_98 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_98, 0, x_75);
x_99 = 1;
x_100 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_100, 0, x_98);
lean_ctor_set_uint8(x_100, sizeof(void*)*1, x_99);
x_101 = l_Lean_Syntax_setArg(x_72, x_74, x_97);
lean_inc(x_12);
x_100 = l_Lean_Syntax_setArg(x_12, x_70, x_99);
x_101 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_101, 0, x_100);
lean_ctor_set(x_101, 1, x_98);
x_16 = x_101;
x_17 = x_83;
x_102 = l_Lean_Syntax_setArg(x_12, x_71, x_101);
x_103 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_103, 0, x_102);
lean_ctor_set(x_103, 1, x_100);
x_16 = x_103;
x_17 = x_85;
goto block_25;
}
else
{
lean_object* x_102; uint8_t x_103; lean_object* x_104; lean_object* x_105;
lean_dec(x_76);
lean_dec(x_74);
lean_dec(x_71);
x_102 = lean_ctor_get(x_75, 1);
lean_inc(x_102);
lean_object* x_104; uint8_t x_105; lean_object* x_106; lean_object* x_107;
lean_dec(x_78);
lean_dec(x_75);
x_103 = 1;
x_104 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_104, 0, x_69);
lean_ctor_set_uint8(x_104, sizeof(void*)*1, x_103);
lean_dec(x_72);
x_104 = lean_ctor_get(x_77, 1);
lean_inc(x_104);
lean_dec(x_77);
x_105 = 1;
x_106 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_106, 0, x_70);
lean_ctor_set_uint8(x_106, sizeof(void*)*1, x_105);
lean_inc(x_12);
x_105 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_105, 0, x_12);
lean_ctor_set(x_105, 1, x_104);
x_16 = x_105;
x_17 = x_102;
x_107 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_107, 0, x_12);
lean_ctor_set(x_107, 1, x_106);
x_16 = x_107;
x_17 = x_104;
goto block_25;
}
}
else
{
uint8_t x_106; lean_object* x_107; lean_object* x_108;
lean_dec(x_71);
x_106 = 1;
x_107 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_107, 0, x_69);
lean_ctor_set_uint8(x_107, sizeof(void*)*1, x_106);
uint8_t x_108; lean_object* x_109; lean_object* x_110;
lean_dec(x_72);
x_108 = 1;
x_109 = lean_alloc_ctor(0, 1, 1);
lean_ctor_set(x_109, 0, x_70);
lean_ctor_set_uint8(x_109, sizeof(void*)*1, x_108);
lean_inc(x_12);
x_108 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_108, 0, x_12);
lean_ctor_set(x_108, 1, x_107);
x_16 = x_108;
x_110 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_110, 0, x_12);
lean_ctor_set(x_110, 1, x_109);
x_16 = x_110;
x_17 = x_5;
goto block_25;
}
@ -675,30 +677,30 @@ goto block_25;
}
else
{
lean_object* x_109; lean_object* x_110; uint8_t x_111;
lean_object* x_111; lean_object* x_112; uint8_t x_113;
lean_dec(x_15);
lean_dec(x_3);
lean_dec(x_1);
x_109 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__6;
x_110 = l_Lean_Elab_Term_throwError___rarg(x_12, x_109, x_4, x_5);
x_111 = l_Array_umapMAux___main___at_Lean_Elab_Term_StructInst_ExpandNonAtomicExplicitSource_main___spec__1___closed__6;
x_112 = l_Lean_Elab_Term_throwError___rarg(x_12, x_111, x_4, x_5);
lean_dec(x_12);
x_111 = !lean_is_exclusive(x_110);
if (x_111 == 0)
x_113 = !lean_is_exclusive(x_112);
if (x_113 == 0)
{
return x_110;
return x_112;
}
else
{
lean_object* x_112; lean_object* x_113; lean_object* x_114;
x_112 = lean_ctor_get(x_110, 0);
x_113 = lean_ctor_get(x_110, 1);
lean_inc(x_113);
lean_inc(x_112);
lean_dec(x_110);
x_114 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_114, 0, x_112);
lean_ctor_set(x_114, 1, x_113);
return x_114;
lean_object* x_114; lean_object* x_115; lean_object* x_116;
x_114 = lean_ctor_get(x_112, 0);
x_115 = lean_ctor_get(x_112, 1);
lean_inc(x_115);
lean_inc(x_114);
lean_dec(x_112);
x_116 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_116, 0, x_114);
lean_ctor_set(x_116, 1, x_115);
return x_116;
}
}
}
@ -1633,94 +1635,95 @@ x_24 = l_Lean_Syntax_getArg(x_10, x_23);
x_25 = l_Lean_Syntax_isNone(x_24);
if (x_25 == 0)
{
lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29;
lean_object* x_26; lean_object* x_27; uint8_t x_28; lean_object* x_29; lean_object* x_30;
x_26 = lean_unsigned_to_nat(0u);
x_27 = l_Lean_Syntax_getArg(x_24, x_26);
lean_dec(x_24);
x_28 = l_Lean_Elab_Term_isLocalTermId_x3f(x_27, x_5, x_6);
x_29 = lean_ctor_get(x_28, 0);
lean_inc(x_29);
if (lean_obj_tag(x_29) == 0)
{
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33;
lean_dec(x_10);
x_30 = lean_ctor_get(x_28, 1);
x_28 = 0;
x_29 = l_Lean_Elab_Term_isLocalTermId_x3f(x_27, x_28, x_5, x_6);
x_30 = lean_ctor_get(x_29, 0);
lean_inc(x_30);
lean_dec(x_28);
x_31 = l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__1;
x_32 = l_unreachable_x21___rarg(x_31);
lean_inc(x_5);
x_33 = lean_apply_2(x_32, x_5, x_30);
if (lean_obj_tag(x_33) == 0)
if (lean_obj_tag(x_30) == 0)
{
lean_object* x_34; lean_object* x_35; lean_object* x_36;
x_34 = lean_ctor_get(x_33, 0);
lean_inc(x_34);
x_35 = lean_ctor_get(x_33, 1);
lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34;
lean_dec(x_10);
x_31 = lean_ctor_get(x_29, 1);
lean_inc(x_31);
lean_dec(x_29);
x_32 = l___private_Init_Lean_Elab_Quotation_5__quoteSyntax___main___closed__1;
x_33 = l_unreachable_x21___rarg(x_32);
lean_inc(x_5);
x_34 = lean_apply_2(x_33, x_5, x_31);
if (lean_obj_tag(x_34) == 0)
{
lean_object* x_35; lean_object* x_36; lean_object* x_37;
x_35 = lean_ctor_get(x_34, 0);
lean_inc(x_35);
lean_dec(x_33);
x_36 = lean_nat_add(x_3, x_1);
x_36 = lean_ctor_get(x_34, 1);
lean_inc(x_36);
lean_dec(x_34);
x_37 = lean_nat_add(x_3, x_1);
lean_dec(x_3);
x_3 = x_36;
x_4 = x_34;
x_6 = x_35;
x_3 = x_37;
x_4 = x_35;
x_6 = x_36;
goto _start;
}
else
{
uint8_t x_38;
uint8_t x_39;
lean_dec(x_5);
lean_dec(x_3);
x_38 = !lean_is_exclusive(x_33);
if (x_38 == 0)
x_39 = !lean_is_exclusive(x_34);
if (x_39 == 0)
{
return x_33;
return x_34;
}
else
{
lean_object* x_39; lean_object* x_40; lean_object* x_41;
x_39 = lean_ctor_get(x_33, 0);
x_40 = lean_ctor_get(x_33, 1);
lean_object* x_40; lean_object* x_41; lean_object* x_42;
x_40 = lean_ctor_get(x_34, 0);
x_41 = lean_ctor_get(x_34, 1);
lean_inc(x_41);
lean_inc(x_40);
lean_inc(x_39);
lean_dec(x_33);
x_41 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_41, 0, x_39);
lean_ctor_set(x_41, 1, x_40);
return x_41;
lean_dec(x_34);
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_42; lean_object* x_43; lean_object* x_44; lean_object* x_45;
x_42 = lean_ctor_get(x_28, 1);
lean_inc(x_42);
lean_dec(x_28);
x_43 = lean_ctor_get(x_29, 0);
lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46;
x_43 = lean_ctor_get(x_29, 1);
lean_inc(x_43);
lean_dec(x_29);
x_44 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_44, 0, x_10);
lean_ctor_set(x_44, 1, x_43);
x_45 = lean_nat_add(x_3, x_1);
x_44 = lean_ctor_get(x_30, 0);
lean_inc(x_44);
lean_dec(x_30);
x_45 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_45, 0, x_10);
lean_ctor_set(x_45, 1, x_44);
x_46 = lean_nat_add(x_3, x_1);
lean_dec(x_3);
x_3 = x_45;
x_4 = x_44;
x_6 = x_42;
x_3 = x_46;
x_4 = x_45;
x_6 = x_43;
goto _start;
}
}
else
{
lean_object* x_47; lean_object* x_48;
lean_object* x_48; lean_object* x_49;
lean_dec(x_24);
x_47 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_47, 0, x_10);
x_48 = lean_nat_add(x_3, x_1);
x_48 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_48, 0, x_10);
x_49 = lean_nat_add(x_3, x_1);
lean_dec(x_3);
x_3 = x_48;
x_4 = x_47;
x_3 = x_49;
x_4 = x_48;
goto _start;
}
}
@ -10000,7 +10003,7 @@ lean_dec(x_8);
lean_dec(x_2);
x_34 = lean_alloc_ctor(4, 1, 0);
lean_ctor_set(x_34, 0, x_31);
x_35 = l_Lean_Elab_Term_mkConst___closed__4;
x_35 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_36 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_36, 0, x_35);
lean_ctor_set(x_36, 1, x_34);
@ -11409,7 +11412,7 @@ lean_ctor_set(x_14, 0, x_2);
x_15 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_15, 0, x_13);
lean_ctor_set(x_15, 1, x_14);
x_16 = l_Lean_Elab_Term_mkConst___closed__4;
x_16 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_17 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_17, 0, x_15);
lean_ctor_set(x_17, 1, x_16);
@ -12905,7 +12908,7 @@ x_8 = l_Lean_Elab_Term_StructInst_Struct_structName(x_2);
lean_inc(x_8);
lean_inc(x_6);
x_9 = l_Lean_getStructureFields(x_6, x_8);
x_10 = l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
x_10 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
lean_inc(x_2);
x_11 = lean_alloc_closure((void*)(l___private_Init_Lean_Elab_StructInst_17__groupFields___lambda__4), 9, 6);
lean_closure_set(x_11, 0, x_2);

View file

@ -244,7 +244,6 @@ lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabMacroRulesAux___closed__32;
extern lean_object* l_Lean_Parser_Syntax_optional___elambda__1___closed__1;
lean_object* l_Lean_Elab_Command_elabMacroRulesAux___closed__10;
extern lean_object* l_Lean_Elab_Term_mkConst___closed__4;
lean_object* l_Lean_Elab_Command_elabMacroRulesAux___lambda__1___closed__1;
lean_object* l_Lean_Elab_Command_elabMacroRules___closed__1;
extern lean_object* l_Lean_Unhygienic_MonadQuotation___closed__4;
@ -396,6 +395,7 @@ lean_object* l_Lean_Syntax_setArg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_toParserDescrAux___main___closed__18;
lean_object* l_Lean_Elab_Command_elabNoKindMacroRulesAux___closed__3;
lean_object* l_Lean_Elab_Term_toParserDescrAux___main___closed__3;
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
extern lean_object* l_Lean_Parser_Syntax_sepBy1___elambda__1___closed__1;
uint8_t l_Lean_Parser_isParserCategory(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Syntax_5__withoutLeftRec___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -6717,7 +6717,7 @@ x_1633 = l_Lean_Elab_Term_toParserDescrAux___main___closed__118;
x_1634 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_1634, 0, x_1633);
lean_ctor_set(x_1634, 1, x_1632);
x_1635 = l_Lean_Elab_Term_mkConst___closed__4;
x_1635 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_1636 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_1636, 0, x_1634);
lean_ctor_set(x_1636, 1, x_1635);
@ -8187,7 +8187,7 @@ x_378 = l_Lean_Elab_Term_toParserDescrAux___main___closed__118;
x_379 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_379, 0, x_378);
lean_ctor_set(x_379, 1, x_377);
x_380 = l_Lean_Elab_Term_mkConst___closed__4;
x_380 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_381 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_381, 0, x_379);
lean_ctor_set(x_381, 1, x_380);
@ -9743,7 +9743,7 @@ x_19 = l_Lean_Elab_Command_elabMacroRulesAux___lambda__1___closed__3;
x_20 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_20, 0, x_19);
lean_ctor_set(x_20, 1, x_18);
x_21 = l_Lean_Elab_Term_mkConst___closed__4;
x_21 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_22 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_22, 0, x_20);
lean_ctor_set(x_22, 1, x_21);
@ -9769,7 +9769,7 @@ x_27 = l_Lean_Elab_Command_elabMacroRulesAux___lambda__1___closed__6;
x_28 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_28, 0, x_27);
lean_ctor_set(x_28, 1, x_26);
x_29 = l_Lean_Elab_Term_mkConst___closed__4;
x_29 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_30 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_30, 0, x_28);
lean_ctor_set(x_30, 1, x_29);

View file

@ -116,6 +116,7 @@ uint8_t l_PersistentHashMap_containsAux___main___at_Lean_Elab_Tactic_addBuiltinT
lean_object* l_Lean_Elab_Tactic_getLocalInsts(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_monadLog___closed__10;
lean_object* l_Lean_Elab_Tactic_mkTacticAttribute___closed__1;
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1;
lean_object* l_Lean_Elab_Tactic_registerBuiltinTacticAttr___closed__4;
lean_object* l_Lean_Elab_Tactic_restore___boxed(lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalNestedTacticBlock___closed__1;
@ -177,6 +178,7 @@ lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalTraceState(lean_object*);
lean_object* l_PersistentHashMap_contains___at_Lean_Elab_Tactic_addBuiltinTactic___spec__4___boxed(lean_object*, lean_object*);
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Elab_Tactic_Basic_4__regTraceClasses___closed__1;
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalNestedTacticBlock___closed__3;
lean_object* lean_array_fset(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_liftTermElabM(lean_object*);
@ -211,12 +213,14 @@ lean_object* lean_name_mk_string(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_builtinTacticTable;
lean_object* l_Lean_Elab_Tactic_tacticElabAttribute___closed__4;
lean_object* l_Lean_Elab_Term_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_revert___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_monadLog___lambda__4___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_State_inhabited___closed__1;
lean_object* l_Lean_collectMVars(lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalSeq___closed__2;
lean_object* l_Lean_Elab_Tactic_evalParen___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_monadLog___lambda__2___boxed(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_revert___closed__1;
lean_object* l_Lean_Elab_Term_throwUnsupportedSyntax___boxed(lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalTraceState___closed__3;
lean_object* l_Lean_Elab_Tactic_getMainGoal(lean_object*, lean_object*, lean_object*);
@ -261,6 +265,7 @@ lean_object* l_Lean_Elab_Tactic_evalNestedTacticBlock(lean_object*, lean_object*
lean_object* l_Lean_Elab_Tactic_tacticElabAttribute;
lean_object* l_Lean_ConstantInfo_type(lean_object*);
lean_object* l_Lean_MessageData_joinSep___main(lean_object*, lean_object*);
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2;
lean_object* l_Lean_Elab_Tactic_State_inhabited;
lean_object* l_HashMapImp_find_x3f___at_Lean_Elab_Tactic_evalTactic___main___spec__5(lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalTraceState___closed__1;
@ -271,6 +276,7 @@ extern lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__2;
extern lean_object* l_Lean_nullKind___closed__2;
lean_object* l_Lean_Elab_Tactic_monadLog___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ParametricAttribute_setParam___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_evalRevert(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_evalAssumption___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_liftMetaTactic___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalOrelse___closed__1;
@ -290,6 +296,7 @@ lean_object* l_Lean_Elab_goalsToMessageData(lean_object*);
lean_object* l_Lean_Elab_Term_liftMetaM___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_MetavarContext_isAnonymousMVar(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_registerBuiltinTacticAttr___lambda__1___closed__4;
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2;
lean_object* l_Lean_Elab_Tactic_Lean_Elab_MonadMacroAdapter___closed__5;
lean_object* l_Lean_Elab_Tactic_evalAssumption___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Array_foldlStepMAux___main___at_Lean_Elab_Tactic_evalTactic___main___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -305,8 +312,10 @@ extern lean_object* l_Lean_Elab_macroAttribute;
lean_object* l_Lean_Elab_Tactic_liftMetaTactic(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_evalTactic___main___closed__1;
lean_object* lean_environment_main_module(lean_object*);
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
lean_object* l_Lean_Elab_Tactic_evalTactic___main___lambda__1___boxed(lean_object*, lean_object*);
lean_object* l_PersistentHashMap_empty___at_Lean_Elab_Tactic_mkBuiltinTacticTable___spec__3;
lean_object* l_Lean_Elab_Tactic_evalRevert___closed__1;
lean_object* l_Lean_Elab_Tactic_ensureHasNoMVars___closed__2;
lean_object* l_Lean_Elab_Tactic_evalNestedTacticBlockCurly(lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_bind___at_Lean_Elab_Tactic_monadLog___spec__2(lean_object*, lean_object*);
@ -328,6 +337,7 @@ lean_object* l_Lean_Elab_Tactic_resettingSynthInstanceCache(lean_object*);
lean_object* l_Lean_Elab_Tactic_evalAssumption(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_save(lean_object*);
lean_object* l_Lean_Elab_Tactic_evalCase___closed__2;
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3;
lean_object* l_Lean_Elab_Tactic_monadLog___closed__2;
lean_object* l_Lean_Elab_Tactic_setGoals(lean_object*, lean_object*, lean_object*);
uint8_t l_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3(lean_object*, lean_object*, lean_object*);
@ -337,10 +347,12 @@ lean_object* l_Lean_Elab_Tactic_tagUntaggedGoals(lean_object*, lean_object*, lea
extern lean_object* l_Lean_Parser_Tactic_orelse___elambda__1___closed__1;
lean_object* l_Lean_Elab_Tactic_getOptions___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_declareBuiltinTactic___closed__2;
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_withMVarContext___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Name_isSuffixOf___main(lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__3;
lean_object* l_Lean_Elab_Tactic_logTrace(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1;
lean_object* lean_io_ref_reset(lean_object*, lean_object*);
lean_object* l_Lean_Meta_introNCore___at_Lean_Meta_introN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_withFreshMacroScope___rarg(lean_object*, lean_object*, lean_object*);
@ -385,8 +397,10 @@ lean_object* l_Lean_PersistentEnvExtension_getState___rarg(lean_object*, lean_ob
lean_object* l_Lean_Elab_Tactic_evalTraceState___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_tacticElabAttribute___closed__3;
lean_object* l_Lean_Elab_Tactic_evalIntro___lambda__2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_evalRevert___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalNestedTacticBlock(lean_object*);
lean_object* l_HashMapImp_contains___at_Lean_Elab_Tactic_addBuiltinTactic___spec__2___boxed(lean_object*, lean_object*);
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3;
extern lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__3;
lean_object* l_Lean_Elab_Tactic_throwUnsupportedSyntax___rarg(lean_object*, lean_object*);
uint8_t l_AssocList_contains___main___at_Lean_Elab_Tactic_addBuiltinTactic___spec__3(lean_object*, lean_object*);
@ -462,12 +476,14 @@ lean_object* l_Lean_Elab_Tactic_getEnv___boxed(lean_object*);
extern lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__2;
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__2;
lean_object* l_Lean_Elab_mkMessageAt___at_Lean_Elab_Tactic_evalTraceState___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert(lean_object*);
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalIntro___closed__1;
lean_object* l_AssocList_contains___main___at_Lean_Elab_Tactic_addBuiltinTactic___spec__3___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_Lean_Elab_MonadMacroAdapter___lambda__2___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_monadLog___closed__4;
lean_object* l_Lean_Elab_Tactic_getMCtx(lean_object*);
lean_object* l_Lean_Elab_Tactic_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_mkHashMap___at_Lean_Elab_Tactic_mkBuiltinTacticTable___spec__2(lean_object*);
extern lean_object* l_Lean_Elab_declareBuiltinMacro___closed__3;
lean_object* l_Lean_Elab_Tactic_monadLog___closed__9;
@ -15037,6 +15053,403 @@ x_5 = l_Lean_Elab_Tactic_addBuiltinTactic(x_2, x_3, x_4, x_1);
return x_5;
}
}
lean_object* _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("unknown variable '");
return x_1;
}
}
lean_object* _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1;
x_2 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2;
x_2 = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
lean_object* x_5; uint8_t x_6;
x_5 = lean_array_get_size(x_2);
x_6 = lean_nat_dec_lt(x_1, x_5);
lean_dec(x_5);
if (x_6 == 0)
{
lean_object* x_7; lean_object* x_8; lean_object* x_9;
lean_dec(x_3);
lean_dec(x_1);
x_7 = l_Array_empty___closed__1;
x_8 = x_2;
x_9 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_9, 0, x_8);
lean_ctor_set(x_9, 1, x_4);
return x_9;
}
else
{
lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
x_10 = lean_array_fget(x_2, x_1);
x_11 = lean_box(0);
x_12 = x_11;
x_13 = lean_array_fset(x_2, x_1, x_12);
x_14 = 1;
x_15 = lean_box(x_14);
lean_inc(x_10);
x_16 = lean_alloc_closure((void*)(l_Lean_Elab_Term_isLocalTermId_x3f___boxed), 4, 2);
lean_closure_set(x_16, 0, x_10);
lean_closure_set(x_16, 1, x_15);
lean_inc(x_3);
x_17 = l_Lean_Elab_Tactic_liftTermElabM___rarg(x_16, x_3, x_4);
if (lean_obj_tag(x_17) == 0)
{
lean_object* x_18;
x_18 = lean_ctor_get(x_17, 0);
lean_inc(x_18);
if (lean_obj_tag(x_18) == 0)
{
lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29;
x_19 = lean_ctor_get(x_17, 1);
lean_inc(x_19);
lean_dec(x_17);
x_20 = l_Lean_Syntax_getId(x_10);
x_21 = l_System_FilePath_dirName___closed__1;
x_22 = l_Lean_Name_toStringWithSep___main(x_21, x_20);
x_23 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_23, 0, x_22);
x_24 = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(x_24, 0, x_23);
x_25 = l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3;
x_26 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_26, 0, x_25);
lean_ctor_set(x_26, 1, x_24);
x_27 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_28 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_28, 0, x_26);
lean_ctor_set(x_28, 1, x_27);
lean_inc(x_3);
lean_inc(x_10);
x_29 = l_Lean_Elab_Tactic_throwError___rarg(x_10, x_28, x_3, x_19);
if (lean_obj_tag(x_29) == 0)
{
lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
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_unsigned_to_nat(1u);
x_33 = lean_nat_add(x_1, x_32);
x_34 = x_30;
lean_dec(x_10);
x_35 = lean_array_fset(x_13, x_1, x_34);
lean_dec(x_1);
x_1 = x_33;
x_2 = x_35;
x_4 = x_31;
goto _start;
}
else
{
uint8_t x_37;
lean_dec(x_13);
lean_dec(x_10);
lean_dec(x_3);
lean_dec(x_1);
x_37 = !lean_is_exclusive(x_29);
if (x_37 == 0)
{
return x_29;
}
else
{
lean_object* x_38; lean_object* x_39; lean_object* x_40;
x_38 = lean_ctor_get(x_29, 0);
x_39 = lean_ctor_get(x_29, 1);
lean_inc(x_39);
lean_inc(x_38);
lean_dec(x_29);
x_40 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_40, 0, x_38);
lean_ctor_set(x_40, 1, x_39);
return x_40;
}
}
}
else
{
lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46; lean_object* x_47;
x_41 = lean_ctor_get(x_17, 1);
lean_inc(x_41);
lean_dec(x_17);
x_42 = lean_ctor_get(x_18, 0);
lean_inc(x_42);
lean_dec(x_18);
x_43 = l_Lean_Expr_fvarId_x21(x_42);
lean_dec(x_42);
x_44 = lean_unsigned_to_nat(1u);
x_45 = lean_nat_add(x_1, x_44);
x_46 = x_43;
lean_dec(x_10);
x_47 = lean_array_fset(x_13, x_1, x_46);
lean_dec(x_1);
x_1 = x_45;
x_2 = x_47;
x_4 = x_41;
goto _start;
}
}
else
{
uint8_t x_49;
lean_dec(x_13);
lean_dec(x_10);
lean_dec(x_3);
lean_dec(x_1);
x_49 = !lean_is_exclusive(x_17);
if (x_49 == 0)
{
return x_17;
}
else
{
lean_object* x_50; lean_object* x_51; lean_object* x_52;
x_50 = lean_ctor_get(x_17, 0);
x_51 = lean_ctor_get(x_17, 1);
lean_inc(x_51);
lean_inc(x_50);
lean_dec(x_17);
x_52 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_52, 0, x_50);
lean_ctor_set(x_52, 1, x_51);
return x_52;
}
}
}
}
}
lean_object* l_Lean_Elab_Tactic_evalRevert___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6) {
_start:
{
uint8_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_7 = 0;
x_8 = lean_box(x_7);
x_9 = lean_alloc_closure((void*)(l_Lean_Meta_revert___boxed), 5, 3);
lean_closure_set(x_9, 0, x_1);
lean_closure_set(x_9, 1, x_4);
lean_closure_set(x_9, 2, x_8);
lean_inc(x_5);
x_10 = l_Lean_Elab_Tactic_liftMetaM___rarg(x_2, x_9, x_5, x_6);
if (lean_obj_tag(x_10) == 0)
{
lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
x_12 = lean_ctor_get(x_10, 1);
lean_inc(x_12);
lean_dec(x_10);
x_13 = lean_ctor_get(x_11, 1);
lean_inc(x_13);
lean_dec(x_11);
x_14 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_14, 0, x_13);
lean_ctor_set(x_14, 1, x_3);
x_15 = l_Lean_Elab_Tactic_setGoals(x_14, x_5, x_12);
lean_dec(x_5);
return x_15;
}
else
{
uint8_t x_16;
lean_dec(x_5);
lean_dec(x_3);
x_16 = !lean_is_exclusive(x_10);
if (x_16 == 0)
{
return x_10;
}
else
{
lean_object* x_17; lean_object* x_18; lean_object* x_19;
x_17 = lean_ctor_get(x_10, 0);
x_18 = lean_ctor_get(x_10, 1);
lean_inc(x_18);
lean_inc(x_17);
lean_dec(x_10);
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* _init_l_Lean_Elab_Tactic_evalRevert___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_seq___elambda__1___closed__2;
x_2 = l_Lean_Meta_revert___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Elab_Tactic_evalRevert(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
uint8_t x_4; lean_object* x_25; uint8_t x_26;
x_25 = l_Lean_Elab_Tactic_evalRevert___closed__1;
lean_inc(x_1);
x_26 = l_Lean_Syntax_isOfKind(x_1, x_25);
if (x_26 == 0)
{
uint8_t x_27;
x_27 = 0;
x_4 = x_27;
goto block_24;
}
else
{
lean_object* x_28; lean_object* x_29; lean_object* x_30; uint8_t x_31;
x_28 = l_Lean_Syntax_getArgs(x_1);
x_29 = lean_array_get_size(x_28);
lean_dec(x_28);
x_30 = lean_unsigned_to_nat(2u);
x_31 = lean_nat_dec_eq(x_29, x_30);
lean_dec(x_29);
x_4 = x_31;
goto block_24;
}
block_24:
{
uint8_t x_5;
x_5 = l_coeDecidableEq(x_4);
if (x_5 == 0)
{
lean_object* x_6;
lean_dec(x_1);
x_6 = l_Lean_Elab_Tactic_throwUnsupportedSyntax___rarg(x_2, x_3);
return x_6;
}
else
{
lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_7 = lean_unsigned_to_nat(1u);
x_8 = l_Lean_Syntax_getArg(x_1, x_7);
x_9 = l_Lean_Syntax_getArgs(x_8);
lean_dec(x_8);
lean_inc(x_2);
lean_inc(x_1);
x_10 = l_Lean_Elab_Tactic_getMainGoal(x_1, x_2, x_3);
if (lean_obj_tag(x_10) == 0)
{
lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19;
x_11 = lean_ctor_get(x_10, 0);
lean_inc(x_11);
x_12 = lean_ctor_get(x_10, 1);
lean_inc(x_12);
lean_dec(x_10);
x_13 = lean_ctor_get(x_11, 0);
lean_inc(x_13);
x_14 = lean_ctor_get(x_11, 1);
lean_inc(x_14);
lean_dec(x_11);
x_15 = lean_unsigned_to_nat(0u);
x_16 = lean_alloc_closure((void*)(l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1), 4, 2);
lean_closure_set(x_16, 0, x_15);
lean_closure_set(x_16, 1, x_9);
lean_inc(x_13);
x_17 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalRevert___lambda__1), 6, 3);
lean_closure_set(x_17, 0, x_13);
lean_closure_set(x_17, 1, x_1);
lean_closure_set(x_17, 2, x_14);
x_18 = lean_alloc_closure((void*)(l_ReaderT_bind___at_Lean_Elab_Tactic_monadLog___spec__2___rarg), 4, 2);
lean_closure_set(x_18, 0, x_16);
lean_closure_set(x_18, 1, x_17);
x_19 = l_Lean_Elab_Tactic_withMVarContext___rarg(x_13, x_18, x_2, x_12);
lean_dec(x_13);
return x_19;
}
else
{
uint8_t x_20;
lean_dec(x_9);
lean_dec(x_2);
lean_dec(x_1);
x_20 = !lean_is_exclusive(x_10);
if (x_20 == 0)
{
return x_10;
}
else
{
lean_object* x_21; lean_object* x_22; lean_object* x_23;
x_21 = lean_ctor_get(x_10, 0);
x_22 = lean_ctor_get(x_10, 1);
lean_inc(x_22);
lean_inc(x_21);
lean_dec(x_10);
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* _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("evalRevert");
return x_1;
}
}
lean_object* _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Elab_Tactic_declareBuiltinTactic___closed__3;
x_2 = l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalRevert), 3, 0);
return x_1;
}
}
lean_object* l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_Elab_Tactic_evalRevert___closed__1;
x_3 = l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2;
x_4 = l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3;
x_5 = l_Lean_Elab_Tactic_addBuiltinTactic(x_2, x_3, x_4, x_1);
return x_5;
}
}
lean_object* l_Lean_Elab_Tactic_evalParen(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
@ -16052,6 +16465,23 @@ lean_mark_persistent(l___regBuiltinTactic_Lean_Elab_Tactic_evalIntros___closed__
res = l___regBuiltinTactic_Lean_Elab_Tactic_evalIntros(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1 = _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1();
lean_mark_persistent(l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__1);
l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2 = _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2();
lean_mark_persistent(l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__2);
l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3 = _init_l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3();
lean_mark_persistent(l_Array_umapMAux___main___at_Lean_Elab_Tactic_evalRevert___spec__1___closed__3);
l_Lean_Elab_Tactic_evalRevert___closed__1 = _init_l_Lean_Elab_Tactic_evalRevert___closed__1();
lean_mark_persistent(l_Lean_Elab_Tactic_evalRevert___closed__1);
l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1 = _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1();
lean_mark_persistent(l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__1);
l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2 = _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2();
lean_mark_persistent(l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__2);
l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3 = _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3();
lean_mark_persistent(l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert___closed__3);
res = l___regBuiltinTactic_Lean_Elab_Tactic_evalRevert(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__1 = _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__1();
lean_mark_persistent(l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__1);
l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__2 = _init_l___regBuiltinTactic_Lean_Elab_Tactic_evalParen___closed__2();

View file

@ -216,7 +216,6 @@ extern lean_object* l_Lean_Parser_Term_cons___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_dbgTrace___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabRawStrLit___closed__3;
extern lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__2;
extern lean_object* l_Lean_Meta_MetaHasEval___rarg___closed__4;
lean_object* l_Lean_Elab_Term_assignExprMVar(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_getMainModule___rarg(lean_object*);
lean_object* l_Lean_Elab_Term_Exception_hasToString(lean_object*);
@ -272,7 +271,6 @@ lean_object* l_Lean_Elab_Term_withConfig___rarg(lean_object*, lean_object*, lean
lean_object* l_Lean_Elab_Term_tryCoe___closed__4;
lean_object* l_Lean_Elab_Term_mkFreshAnonymousName___boxed(lean_object*);
extern lean_object* l_Lean_Meta_dbgTrace___rarg___closed__1;
lean_object* l_Lean_Elab_Term_mkConst___closed__6;
lean_object* l_Lean_Elab_Term_monadLog___closed__5;
extern lean_object* l_Lean_Parser_termParser___closed__1;
lean_object* l___private_Init_Lean_Elab_Term_2__fromMetaException(lean_object*, lean_object*, lean_object*);
@ -455,7 +453,6 @@ extern lean_object* l_Lean_mkAppStx___closed__6;
extern lean_object* l_Lean_Options_empty;
lean_object* l___private_Init_Lean_Elab_Term_18__regTraceClasses(lean_object*);
lean_object* l_Array_anyRangeMAux___main___at___private_Init_Lean_Elab_Term_4__hasCDot___main___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_mkConst___closed__7;
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabTypeStx___closed__3;
lean_object* l_Lean_Elab_Term_elabTermAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLevel___boxed(lean_object*, lean_object*, lean_object*);
@ -506,6 +503,7 @@ lean_object* l_Lean_Elab_Term_TermElabM_inhabited___boxed(lean_object*, lean_obj
lean_object* l_Lean_Elab_Term_mkFreshAnonymousIdent___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabRawNumLit(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabTermAux___main___closed__3;
extern lean_object* l_IO_runMeta___rarg___closed__4;
extern lean_object* l_Lean_PersistentEnvExtension_inhabited___rarg___closed__3;
lean_object* l_Lean_Elab_Term_Lean_Elab_MonadMacroAdapter___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ConstantInfo_type(lean_object*);
@ -591,6 +589,7 @@ lean_object* l_Lean_Elab_Term_withReducible(lean_object*);
lean_object* l_PersistentHashMap_contains___at_Lean_Elab_Term_addBuiltinTermElab___spec__4___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_TermElabM_inhabited___rarg(lean_object*);
uint8_t l_Lean_Expr_isMVar(lean_object*);
extern lean_object* l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
lean_object* l_Lean_Elab_Term_monadLog___closed__9;
lean_object* l_Lean_Meta_mkFreshExprMVar(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_mkConst___closed__5;
@ -795,7 +794,7 @@ lean_object* l_ReaderT_lift___at_Lean_Elab_Term_Lean_Elab_MonadMacroAdapter___sp
lean_object* l_Lean_Message_toString(lean_object*);
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_char___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_indentExpr(lean_object*);
lean_object* l_Lean_Elab_Term_Lean_Elab_MonadMacroAdapter___closed__8;
lean_object* l_Lean_Elab_Term_trace(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -856,7 +855,7 @@ lean_object* l_Lean_Elab_Term_mkFreshInstanceName___rarg___closed__2;
lean_object* l_Lean_mkApp3(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_decLevel_x3f(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_monadLog___lambda__2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltinTermElab_Lean_Elab_Term_elabTacticBlock___closed__1;
lean_object* l_Lean_Elab_Term_expandCDot_x3f(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_NameGenerator_Inhabited___closed__3;
@ -877,7 +876,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; lean_object* x_7;
x_1 = l_Lean_EnvExtension_setState___closed__1;
x_2 = l_Lean_MetavarContext_Inhabited___closed__1;
x_3 = l_Lean_Meta_MetaHasEval___rarg___closed__4;
x_3 = l_IO_runMeta___rarg___closed__4;
x_4 = l_Lean_NameGenerator_Inhabited___closed__3;
x_5 = l_Lean_TraceState_Inhabited___closed__1;
x_6 = l_PersistentArray_empty___closed__3;
@ -23581,19 +23580,18 @@ lean_dec(x_2);
return x_4;
}
}
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f(lean_object* x_1, uint8_t x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
uint8_t x_4; lean_object* x_5;
x_4 = 0;
x_5 = l_Lean_Syntax_isTermId_x3f(x_1, x_4);
lean_object* x_5;
x_5 = l_Lean_Syntax_isTermId_x3f(x_1, x_2);
if (lean_obj_tag(x_5) == 0)
{
lean_object* x_6; lean_object* x_7;
x_6 = lean_box(0);
x_7 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_7, 0, x_6);
lean_ctor_set(x_7, 1, x_3);
lean_ctor_set(x_7, 1, x_4);
return x_7;
}
else
@ -23611,7 +23609,7 @@ lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_10 = lean_ctor_get(x_9, 2);
lean_inc(x_10);
lean_dec(x_9);
x_11 = l___private_Init_Lean_Elab_Term_15__resolveLocalName(x_10, x_2, x_3);
x_11 = l___private_Init_Lean_Elab_Term_15__resolveLocalName(x_10, x_3, x_4);
x_12 = lean_ctor_get(x_11, 0);
lean_inc(x_12);
if (lean_obj_tag(x_12) == 0)
@ -23781,19 +23779,21 @@ lean_dec(x_9);
x_45 = lean_box(0);
x_46 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_46, 0, x_45);
lean_ctor_set(x_46, 1, x_3);
lean_ctor_set(x_46, 1, x_4);
return x_46;
}
}
}
}
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
lean_object* l_Lean_Elab_Term_isLocalTermId_x3f___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
lean_object* x_4;
x_4 = l_Lean_Elab_Term_isLocalTermId_x3f(x_1, x_2, x_3);
uint8_t x_5; lean_object* x_6;
x_5 = lean_unbox(x_2);
lean_dec(x_2);
return x_4;
x_6 = l_Lean_Elab_Term_isLocalTermId_x3f(x_1, x_5, x_3, x_4);
lean_dec(x_3);
return x_6;
}
}
lean_object* l_Nat_foldMAux___main___at___private_Init_Lean_Elab_Term_16__mkFreshLevelMVars___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) {
@ -23888,11 +23888,9 @@ return x_2;
lean_object* _init_l_Lean_Elab_Term_mkConst___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Char_HasRepr___closed__1;
x_2 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
lean_object* x_1;
x_1 = lean_mk_string("too many explicit universe levels");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_mkConst___closed__4() {
@ -23900,7 +23898,7 @@ _start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Elab_Term_mkConst___closed__3;
x_2 = lean_alloc_ctor(0, 1, 0);
x_2 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
@ -23908,26 +23906,8 @@ return x_2;
lean_object* _init_l_Lean_Elab_Term_mkConst___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("too many explicit universe levels");
return x_1;
}
}
lean_object* _init_l_Lean_Elab_Term_mkConst___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Elab_Term_mkConst___closed__5;
x_2 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Elab_Term_mkConst___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Elab_Term_mkConst___closed__6;
x_1 = l_Lean_Elab_Term_mkConst___closed__4;
x_2 = lean_alloc_ctor(0, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
@ -23955,7 +23935,7 @@ x_11 = l_Lean_Elab_Term_mkConst___closed__2;
x_12 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_12, 0, x_11);
lean_ctor_set(x_12, 1, x_10);
x_13 = l_Lean_Elab_Term_mkConst___closed__4;
x_13 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_14 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_14, 0, x_12);
lean_ctor_set(x_14, 1, x_13);
@ -24015,7 +23995,7 @@ lean_dec(x_20);
lean_dec(x_19);
lean_dec(x_3);
lean_dec(x_2);
x_33 = l_Lean_Elab_Term_mkConst___closed__7;
x_33 = l_Lean_Elab_Term_mkConst___closed__5;
x_34 = l_Lean_Elab_Term_throwError___rarg(x_1, x_33, x_4, x_8);
return x_34;
}
@ -24439,7 +24419,7 @@ x_30 = l_Lean_Elab_Term_resolveName___closed__3;
x_31 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_31, 0, x_30);
lean_ctor_set(x_31, 1, x_29);
x_32 = l_Lean_Elab_Term_mkConst___closed__4;
x_32 = l_Array_forMAux___main___at_Lean_Meta_clear___spec__41___closed__8;
x_33 = lean_alloc_ctor(9, 2, 0);
lean_ctor_set(x_33, 0, x_31);
lean_ctor_set(x_33, 1, x_32);
@ -26038,10 +26018,6 @@ l_Lean_Elab_Term_mkConst___closed__4 = _init_l_Lean_Elab_Term_mkConst___closed__
lean_mark_persistent(l_Lean_Elab_Term_mkConst___closed__4);
l_Lean_Elab_Term_mkConst___closed__5 = _init_l_Lean_Elab_Term_mkConst___closed__5();
lean_mark_persistent(l_Lean_Elab_Term_mkConst___closed__5);
l_Lean_Elab_Term_mkConst___closed__6 = _init_l_Lean_Elab_Term_mkConst___closed__6();
lean_mark_persistent(l_Lean_Elab_Term_mkConst___closed__6);
l_Lean_Elab_Term_mkConst___closed__7 = _init_l_Lean_Elab_Term_mkConst___closed__7();
lean_mark_persistent(l_Lean_Elab_Term_mkConst___closed__7);
l_Lean_Elab_Term_resolveName___closed__1 = _init_l_Lean_Elab_Term_resolveName___closed__1();
lean_mark_persistent(l_Lean_Elab_Term_resolveName___closed__1);
l_Lean_Elab_Term_resolveName___closed__2 = _init_l_Lean_Elab_Term_resolveName___closed__2();

View file

@ -61,7 +61,7 @@ lean_object* lean_message_string(lean_object*);
extern lean_object* l_EStateM_Result_toString___rarg___closed__2;
lean_object* l_Lean_MessageLog_toList(lean_object*);
lean_object* l_PersistentArray_foldlMAux___main___at_Lean_MessageLog_toList___spec__2(lean_object*, lean_object*);
lean_object* l_Lean_ppGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ppGoal(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_PersistentArray_anyM___at_Lean_MessageLog_hasErrors___spec__1___boxed(lean_object*);
lean_object* lean_array_fget(lean_object*, lean_object*);
lean_object* l_Lean_MessageLog_append(lean_object*, lean_object*);
@ -681,7 +681,7 @@ return x_87;
}
case 5:
{
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_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93;
x_88 = lean_ctor_get(x_1, 0);
lean_inc(x_88);
lean_dec(x_1);
@ -692,145 +692,143 @@ x_90 = lean_ctor_get(x_88, 0);
lean_inc(x_90);
x_91 = lean_ctor_get(x_88, 1);
lean_inc(x_91);
x_92 = lean_ctor_get(x_88, 2);
x_92 = lean_ctor_get(x_88, 3);
lean_inc(x_92);
x_93 = lean_ctor_get(x_88, 3);
lean_inc(x_93);
lean_dec(x_88);
x_94 = l_Lean_ppGoal(x_90, x_91, x_92, x_93, x_89);
return x_94;
x_93 = l_Lean_ppGoal(x_90, x_91, x_92, x_89);
return x_93;
}
case 6:
{
uint8_t x_95;
x_95 = !lean_is_exclusive(x_1);
if (x_95 == 0)
uint8_t x_94;
x_94 = !lean_is_exclusive(x_1);
if (x_94 == 0)
{
lean_object* x_96; lean_object* x_97; lean_object* x_98;
x_96 = lean_ctor_get(x_1, 0);
lean_dec(x_96);
x_97 = lean_ctor_get(x_2, 0);
lean_object* x_95; lean_object* x_96; lean_object* x_97;
x_95 = lean_ctor_get(x_1, 0);
lean_dec(x_95);
x_96 = lean_ctor_get(x_2, 0);
lean_inc(x_96);
x_97 = lean_ctor_get(x_2, 1);
lean_inc(x_97);
x_98 = lean_ctor_get(x_2, 1);
lean_inc(x_98);
lean_dec(x_2);
lean_ctor_set(x_1, 0, x_97);
x_2 = x_98;
lean_ctor_set(x_1, 0, x_96);
x_2 = x_97;
goto _start;
}
else
{
lean_object* x_100; lean_object* x_101; lean_object* x_102;
lean_object* x_99; lean_object* x_100; lean_object* x_101;
lean_dec(x_1);
x_100 = lean_ctor_get(x_2, 0);
x_99 = lean_ctor_get(x_2, 0);
lean_inc(x_99);
x_100 = lean_ctor_get(x_2, 1);
lean_inc(x_100);
x_101 = lean_ctor_get(x_2, 1);
lean_inc(x_101);
lean_dec(x_2);
x_102 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_102, 0, x_100);
x_1 = x_102;
x_2 = x_101;
x_101 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_101, 0, x_99);
x_1 = x_101;
x_2 = x_100;
goto _start;
}
}
case 7:
{
lean_object* x_104; lean_object* x_105; lean_object* x_106; lean_object* x_107;
x_104 = lean_ctor_get(x_2, 0);
lean_object* x_103; lean_object* x_104; lean_object* x_105; lean_object* x_106;
x_103 = lean_ctor_get(x_2, 0);
lean_inc(x_103);
x_104 = lean_ctor_get(x_2, 1);
lean_inc(x_104);
x_105 = lean_ctor_get(x_2, 1);
lean_inc(x_105);
lean_dec(x_2);
x_106 = l_Lean_MessageData_formatAux___main(x_1, x_105);
x_107 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_107, 0, x_104);
lean_ctor_set(x_107, 1, x_106);
return x_107;
x_105 = l_Lean_MessageData_formatAux___main(x_1, x_104);
x_106 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_106, 0, x_103);
lean_ctor_set(x_106, 1, x_105);
return x_106;
}
case 8:
{
lean_object* x_108; lean_object* x_109; lean_object* x_110;
x_108 = lean_ctor_get(x_2, 0);
lean_inc(x_108);
lean_object* x_107; lean_object* x_108; lean_object* x_109;
x_107 = lean_ctor_get(x_2, 0);
lean_inc(x_107);
lean_dec(x_2);
x_109 = l_Lean_MessageData_formatAux___main(x_1, x_108);
x_110 = lean_format_group(x_109);
return x_110;
x_108 = l_Lean_MessageData_formatAux___main(x_1, x_107);
x_109 = lean_format_group(x_108);
return x_109;
}
case 9:
{
lean_object* x_111; lean_object* x_112; lean_object* x_113; lean_object* x_114; uint8_t x_115; lean_object* x_116;
x_111 = lean_ctor_get(x_2, 0);
lean_object* x_110; lean_object* x_111; lean_object* x_112; lean_object* x_113; uint8_t x_114; lean_object* x_115;
x_110 = lean_ctor_get(x_2, 0);
lean_inc(x_110);
x_111 = lean_ctor_get(x_2, 1);
lean_inc(x_111);
x_112 = lean_ctor_get(x_2, 1);
lean_inc(x_112);
lean_dec(x_2);
lean_inc(x_1);
x_112 = l_Lean_MessageData_formatAux___main(x_1, x_110);
x_113 = l_Lean_MessageData_formatAux___main(x_1, x_111);
x_114 = l_Lean_MessageData_formatAux___main(x_1, x_112);
x_115 = 0;
x_116 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_116, 0, x_113);
lean_ctor_set(x_116, 1, x_114);
lean_ctor_set_uint8(x_116, sizeof(void*)*2, x_115);
return x_116;
x_114 = 0;
x_115 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_115, 0, x_112);
lean_ctor_set(x_115, 1, x_113);
lean_ctor_set_uint8(x_115, sizeof(void*)*2, x_114);
return x_115;
}
case 10:
{
lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; lean_object* x_121; uint8_t 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;
x_117 = lean_ctor_get(x_2, 0);
lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119; lean_object* x_120; uint8_t x_121; lean_object* x_122; 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;
x_116 = lean_ctor_get(x_2, 0);
lean_inc(x_116);
x_117 = lean_ctor_get(x_2, 1);
lean_inc(x_117);
x_118 = lean_ctor_get(x_2, 1);
lean_inc(x_118);
lean_dec(x_2);
x_119 = l_Lean_Name_toString___closed__1;
x_120 = l_Lean_Name_toStringWithSep___main(x_119, x_117);
x_121 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_121, 0, x_120);
x_122 = 0;
x_123 = l_Lean_Format_sbracket___closed__2;
x_124 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_124, 0, x_123);
lean_ctor_set(x_124, 1, x_121);
lean_ctor_set_uint8(x_124, sizeof(void*)*2, x_122);
x_125 = l_Lean_Format_sbracket___closed__3;
x_126 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_126, 0, x_124);
lean_ctor_set(x_126, 1, x_125);
lean_ctor_set_uint8(x_126, sizeof(void*)*2, x_122);
x_127 = l_Lean_Format_sbracket___closed__1;
x_128 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_128, 0, x_127);
lean_ctor_set(x_128, 1, x_126);
x_129 = lean_format_group(x_128);
x_130 = l_Lean_Format_flatten___main___closed__1;
x_131 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_131, 0, x_129);
lean_ctor_set(x_131, 1, x_130);
lean_ctor_set_uint8(x_131, sizeof(void*)*2, x_122);
x_132 = l_Lean_MessageData_formatAux___main(x_1, x_118);
x_133 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_133, 0, x_131);
lean_ctor_set(x_133, 1, x_132);
lean_ctor_set_uint8(x_133, sizeof(void*)*2, x_122);
return x_133;
x_118 = l_Lean_Name_toString___closed__1;
x_119 = l_Lean_Name_toStringWithSep___main(x_118, x_116);
x_120 = lean_alloc_ctor(2, 1, 0);
lean_ctor_set(x_120, 0, x_119);
x_121 = 0;
x_122 = l_Lean_Format_sbracket___closed__2;
x_123 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_123, 0, x_122);
lean_ctor_set(x_123, 1, x_120);
lean_ctor_set_uint8(x_123, sizeof(void*)*2, x_121);
x_124 = l_Lean_Format_sbracket___closed__3;
x_125 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_125, 0, x_123);
lean_ctor_set(x_125, 1, x_124);
lean_ctor_set_uint8(x_125, sizeof(void*)*2, x_121);
x_126 = l_Lean_Format_sbracket___closed__1;
x_127 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_127, 0, x_126);
lean_ctor_set(x_127, 1, x_125);
x_128 = lean_format_group(x_127);
x_129 = l_Lean_Format_flatten___main___closed__1;
x_130 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_130, 0, x_128);
lean_ctor_set(x_130, 1, x_129);
lean_ctor_set_uint8(x_130, sizeof(void*)*2, x_121);
x_131 = l_Lean_MessageData_formatAux___main(x_1, x_117);
x_132 = lean_alloc_ctor(4, 2, 1);
lean_ctor_set(x_132, 0, x_130);
lean_ctor_set(x_132, 1, x_131);
lean_ctor_set_uint8(x_132, sizeof(void*)*2, x_121);
return x_132;
}
default:
{
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_134 = lean_ctor_get(x_2, 0);
lean_inc(x_134);
lean_object* x_133; lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137; lean_object* x_138;
x_133 = lean_ctor_get(x_2, 0);
lean_inc(x_133);
lean_dec(x_2);
x_135 = lean_unsigned_to_nat(0u);
x_136 = lean_box(0);
x_137 = l_Array_iterateMAux___main___at_Lean_MessageData_formatAux___main___spec__3(x_1, x_134, x_134, x_135, x_136);
lean_dec(x_134);
x_138 = lean_unsigned_to_nat(2u);
x_139 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_139, 0, x_138);
lean_ctor_set(x_139, 1, x_137);
return x_139;
x_134 = lean_unsigned_to_nat(0u);
x_135 = lean_box(0);
x_136 = l_Array_iterateMAux___main___at_Lean_MessageData_formatAux___main___spec__3(x_1, x_133, x_133, x_134, x_135);
lean_dec(x_133);
x_137 = lean_unsigned_to_nat(2u);
x_138 = lean_alloc_ctor(3, 2, 0);
lean_ctor_set(x_138, 0, x_137);
lean_ctor_set(x_138, 1, x_136);
return x_138;
}
}
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -13,7 +13,6 @@
#ifdef __cplusplus
extern "C" {
#endif
lean_object* l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
lean_object* l_Array_forMAux___main___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__3(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Util_Trace_3__getResetTraces___at_Lean_Meta_check___spec__1___boxed(lean_object*);
lean_object* l___private_Init_Lean_Meta_Check_3__checkForall___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__4___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
@ -22,13 +21,11 @@ lean_object* l_Lean_Meta_check___closed__1;
lean_object* l___private_Init_Lean_Meta_Check_4__checkConstant(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_Check_1__ensureType(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Util_Trace_2__addNode___at_Lean_Meta_check___spec__2(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_EIO_Monad___closed__1;
extern lean_object* l___private_Init_Lean_Meta_Basic_10__regTraceClasses___closed__2;
lean_object* l___private_Init_Lean_Meta_Check_6__checkAux(lean_object*, lean_object*, lean_object*);
lean_object* lean_environment_find(lean_object*, lean_object*);
lean_object* l_Lean_Meta_isExprDefEqAux(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_checkTraceOption(lean_object*, lean_object*);
lean_object* l_ReaderT_Monad___rarg(lean_object*);
lean_object* l___private_Init_Lean_Meta_Check_7__regTraceClasses(lean_object*);
lean_object* l_Array_forMAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_array_get_size(lean_object*);
@ -82,6 +79,7 @@ lean_object* l___private_Init_Lean_Meta_Check_4__checkConstant___boxed(lean_obje
lean_object* l___private_Init_Lean_Meta_Check_3__checkForall___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toTraceMessageData(lean_object*);
lean_object* l___private_Init_Lean_Meta_Check_5__checkApp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
lean_object* l_Lean_Meta_check(lean_object*, lean_object*, lean_object*);
lean_object* l_PersistentArray_toArray___rarg(lean_object*);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
@ -463,15 +461,6 @@ return x_71;
}
}
}
lean_object* _init_l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_EIO_Monad___closed__1;
x_2 = l_ReaderT_Monad___rarg(x_1);
return x_2;
}
}
lean_object* l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
_start:
{
@ -479,7 +468,7 @@ lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_obj
lean_inc(x_1);
x_6 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__1___boxed), 4, 1);
lean_closure_set(x_6, 0, x_1);
x_7 = l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
x_7 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_8 = lean_unsigned_to_nat(0u);
x_9 = l_Array_forMAux___main___rarg(x_7, lean_box(0), lean_box(0), x_6, x_2, x_8);
lean_inc(x_4);
@ -626,7 +615,7 @@ lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_obj
lean_inc(x_1);
x_6 = lean_alloc_closure((void*)(l___private_Init_Lean_Meta_Check_3__checkForall___lambda__1___boxed), 4, 1);
lean_closure_set(x_6, 0, x_1);
x_7 = l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
x_7 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_8 = lean_unsigned_to_nat(0u);
x_9 = l_Array_forMAux___main___rarg(x_7, lean_box(0), lean_box(0), x_6, x_2, x_8);
lean_inc(x_4);
@ -5134,8 +5123,6 @@ _G_initialized = true;
res = initialize_Init_Lean_Meta_InferType(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1 = _init_l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1();
lean_mark_persistent(l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1);
l___private_Init_Lean_Meta_Check_2__checkLambdaLet___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__2___closed__1 = _init_l___private_Init_Lean_Meta_Check_2__checkLambdaLet___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__2___closed__1();
lean_mark_persistent(l___private_Init_Lean_Meta_Check_2__checkLambdaLet___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__2___closed__1);
l___private_Init_Lean_Meta_Check_3__checkForall___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__4___closed__1 = _init_l___private_Init_Lean_Meta_Check_3__checkForall___at___private_Init_Lean_Meta_Check_6__checkAux___main___spec__4___closed__1();

View file

@ -123,7 +123,6 @@ lean_object* l_Array_binSearchAux___main___at___private_Init_Lean_Meta_DiscrTree
lean_object* l_Lean_Meta_DiscrTree_mkPathAux(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_DiscrTree_4__pushArgsAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_binSearchAux___main___at___private_Init_Lean_Meta_DiscrTree_15__getMatchAux___main___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1___boxed(lean_object*);
lean_object* l___private_Init_Lean_Meta_DiscrTree_6__shouldAddAsStar___boxed(lean_object*);
lean_object* l_Lean_Meta_DiscrTree_Key_hasFormat___closed__1;
lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Meta_DiscrTree_insertCore___spec__3(lean_object*);
@ -180,7 +179,6 @@ lean_object* l___private_Init_Lean_Meta_DiscrTree_6__shouldAddAsStar___closed__6
lean_object* l_Lean_Meta_DiscrTree_format___rarg(lean_object*, lean_object*);
lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Meta_DiscrTree_getUnify___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Meta_DiscrTree_getUnify___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(lean_object*);
lean_object* l_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_Meta_DiscrTree_insertCore___spec__10___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_binInsertM___at___private_Init_Lean_Meta_DiscrTree_11__insertAux___main___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_DiscrTree_mkPath___closed__1;
@ -256,7 +254,6 @@ lean_object* l_Array_iterateMAux___main___at_Lean_Meta_DiscrTree_format___spec__
lean_object* l___private_Init_Lean_Meta_DiscrTree_11__insertAux___main___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_binInsertM___at___private_Init_Lean_Meta_DiscrTree_11__insertAux___main___spec__1(lean_object*);
lean_object* l_Array_toList___rarg(lean_object*);
extern lean_object* l_Lean_Expr_Inhabited;
lean_object* l___private_Init_Lean_Meta_DiscrTree_17__getUnifyAux(lean_object*);
lean_object* lean_array_pop(lean_object*);
lean_object* l_Lean_Meta_DiscrTree_Trie_format___main___rarg(lean_object*, lean_object*);
@ -303,6 +300,7 @@ lean_object* l_Array_binSearchAux___main___at___private_Init_Lean_Meta_DiscrTree
lean_object* l_PersistentHashMap_findAtAux___main___at_Lean_Meta_DiscrTree_insertCore___spec__3___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_PersistentHashMap_findAux___main___at_Lean_Meta_DiscrTree_getUnify___spec__2(lean_object*);
lean_object* l_Array_back___at___private_Init_Lean_Meta_DiscrTree_11__insertAux___main___spec__2___rarg___closed__1;
lean_object* l_Array_back___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__50(lean_object*);
uint8_t l_Lean_Literal_lt(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_DiscrTree_11__insertAux___main(lean_object*);
lean_object* l_PersistentHashMap_foldlM___at_Lean_Meta_DiscrTree_getUnify___spec__4___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
@ -2139,20 +2137,6 @@ return x_186;
}
}
}
lean_object* l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_2 = lean_array_get_size(x_1);
x_3 = lean_unsigned_to_nat(1u);
x_4 = lean_nat_sub(x_2, x_3);
lean_dec(x_2);
x_5 = l_Lean_Expr_Inhabited;
x_6 = lean_array_get(x_5, x_1, x_4);
lean_dec(x_4);
return x_6;
}
}
lean_object* l_Lean_Meta_DiscrTree_mkPathAux___main(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
@ -2161,7 +2145,7 @@ x_5 = l_Array_isEmpty___rarg(x_1);
if (x_5 == 0)
{
lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_6 = l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(x_1);
x_6 = l_Array_back___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__50(x_1);
x_7 = lean_array_pop(x_1);
lean_inc(x_3);
x_8 = l___private_Init_Lean_Meta_DiscrTree_7__pushArgs(x_7, x_6, x_3, x_4);
@ -2221,15 +2205,6 @@ return x_19;
}
}
}
lean_object* l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(x_1);
lean_dec(x_1);
return x_2;
}
}
lean_object* l_Lean_Meta_DiscrTree_mkPathAux(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
@ -6254,7 +6229,7 @@ x_9 = l_Array_isEmpty___rarg(x_7);
if (x_9 == 0)
{
lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; uint8_t x_15; lean_object* x_16;
x_10 = l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(x_1);
x_10 = l_Array_back___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__50(x_1);
x_11 = lean_array_pop(x_1);
x_12 = l_Array_back___at___private_Init_Lean_Meta_DiscrTree_11__insertAux___main___spec__2___rarg___closed__2;
x_13 = lean_unsigned_to_nat(0u);
@ -9541,7 +9516,7 @@ x_18 = l_Array_isEmpty___rarg(x_16);
if (x_18 == 0)
{
lean_object* x_19; lean_object* x_20; uint8_t x_21; lean_object* x_22;
x_19 = l_Array_back___at_Lean_Meta_DiscrTree_mkPathAux___main___spec__1(x_2);
x_19 = l_Array_back___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__50(x_2);
x_20 = lean_array_pop(x_2);
x_21 = 0;
lean_inc(x_5);

View file

@ -15,7 +15,6 @@ extern "C" {
#endif
lean_object* l_Lean_Meta_CheckAssignmentQuick_check___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_HashMapImp_find_x3f___at___private_Init_Lean_Meta_ExprDefEq_8__findCached_x3f___spec__1___boxed(lean_object*, lean_object*);
extern lean_object* l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
lean_object* l_Lean_Meta_withNewLocalInstances___main___at___private_Init_Lean_Meta_ExprDefEq_18__processConstApprox___spec__4___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*);
extern lean_object* l_Lean_Meta_Exception_toTraceMessageData___closed__51;
lean_object* lean_expr_update_forall(lean_object*, uint8_t, lean_object*, lean_object*);
@ -324,6 +323,7 @@ lean_object* lean_metavar_ctx_find_decl(lean_object*, lean_object*);
uint8_t l_Lean_Expr_isFVar(lean_object*);
lean_object* l___private_Init_Lean_Meta_ExprDefEq_17__simpAssignmentArg(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_ExprDefEq_44__unstuckMVar___at___private_Init_Lean_Meta_ExprDefEq_45__isDefEqOnFailure___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1;
extern lean_object* l_Lean_Expr_updateLet_x21___closed__1;
lean_object* lean_expr_update_lambda(lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Meta_inferType(lean_object*, lean_object*, lean_object*);
@ -362,7 +362,6 @@ lean_object* l_Lean_Meta_CheckAssignment_getMCtx___boxed(lean_object*);
lean_object* l_Lean_Meta_setIsExprDefEqAuxRef___closed__1;
lean_object* l___private_Init_Lean_Expr_9__etaExpandedAux___main(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_ExprDefEq_35__isAssigned___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_CheckAssignment_check___main___closed__1;
lean_object* l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__4;
lean_object* l___private_Init_Lean_Meta_ExprDefEq_46__consumeLet___main___boxed(lean_object*);
lean_object* l_HashMapImp_moveEntries___main___at___private_Init_Lean_Meta_ExprDefEq_9__cache___spec__4(lean_object*, lean_object*, lean_object*);
@ -402,13 +401,13 @@ uint8_t l_Lean_LocalContext_isSubPrefixOf(lean_object*, lean_object*);
lean_object* l_Lean_Meta_CheckAssignment_getMCtx___rarg(lean_object*);
uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_CheckAssignment_check___main___spec__6(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_ReducibilityHints_lt(lean_object*, lean_object*);
extern lean_object* l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
lean_object* l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_ExprDefEq_8__findCached_x3f___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_ExprDefEq_14__processAssignmentFOApproxAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_LocalDecl_isLet(lean_object*);
lean_object* l_Lean_Meta_withNewLocalInstances___main___at___private_Init_Lean_Meta_ExprDefEq_18__processConstApprox___spec__5(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
lean_object* l_monadInhabited___rarg(lean_object*, lean_object*);
lean_object* l_Lean_Meta_getFVarLocalDecl(lean_object*, lean_object*, lean_object*);
lean_object* _init_l_Lean_Meta_try___at___private_Init_Lean_Meta_ExprDefEq_1__isDefEqEta___spec__1___closed__1() {
_start:
@ -24347,16 +24346,6 @@ return x_1496;
}
}
}
lean_object* _init_l_Lean_Meta_CheckAssignment_check___main___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
x_2 = l_Lean_Expr_Inhabited;
x_3 = l_monadInhabited___rarg(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Meta_CheckAssignment_check___main(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
@ -25721,7 +25710,7 @@ case 12:
{
lean_object* x_317; lean_object* x_318; lean_object* x_319;
lean_dec(x_1);
x_317 = l_Lean_Meta_CheckAssignment_check___main___closed__1;
x_317 = l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1;
x_318 = l_unreachable_x21___rarg(x_317);
x_319 = lean_apply_2(x_318, x_2, x_3);
return x_319;
@ -47344,7 +47333,7 @@ lean_object* l___private_Init_Lean_Meta_ExprDefEq_44__unstuckMVar(lean_object* x
_start:
{
lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_6 = l___private_Init_Lean_Meta_Check_2__checkLambdaLet___lambda__2___closed__1;
x_6 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_7 = l___private_Init_Lean_Meta_ExprDefEq_44__unstuckMVar___closed__1;
x_8 = l___private_Init_Lean_Meta_ExprDefEq_44__unstuckMVar___closed__2;
lean_inc(x_1);
@ -51045,8 +51034,6 @@ l_Lean_Meta_CheckAssignment_Lean_MonadCache___closed__3 = _init_l_Lean_Meta_Chec
lean_mark_persistent(l_Lean_Meta_CheckAssignment_Lean_MonadCache___closed__3);
l_Lean_Meta_CheckAssignment_Lean_MonadCache = _init_l_Lean_Meta_CheckAssignment_Lean_MonadCache();
lean_mark_persistent(l_Lean_Meta_CheckAssignment_Lean_MonadCache);
l_Lean_Meta_CheckAssignment_check___main___closed__1 = _init_l_Lean_Meta_CheckAssignment_check___main___closed__1();
lean_mark_persistent(l_Lean_Meta_CheckAssignment_check___main___closed__1);
l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__1 = _init_l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__1();
lean_mark_persistent(l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__1);
l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__2 = _init_l___private_Init_Lean_Meta_ExprDefEq_11__checkAssignmentFailure___closed__2();

View file

@ -53,7 +53,6 @@ size_t l_USize_shiftRight(size_t, size_t);
lean_object* l_Array_iterateMAux___main___at_Lean_Meta_mkInstanceExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_PersistentHashMap_findAux___main___at_Lean_Meta_addInstanceEntry___spec__3___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_instanceExtension___elambda__3___boxed(lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_MetaHasEval___rarg___closed__4;
uint8_t l_Lean_Meta_DiscrTree_Key_beq(lean_object*, lean_object*);
lean_object* lean_nat_add(lean_object*, lean_object*);
lean_object* l_IO_ofExcept___at_Lean_registerClassAttr___spec__1(lean_object*, lean_object*);
@ -103,6 +102,7 @@ size_t l_USize_mul(size_t, size_t);
lean_object* l_PersistentHashMap_find_x3f___at_Lean_Meta_addInstanceEntry___spec__2___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Meta_instanceExtension___closed__1;
lean_object* l_Lean_Meta_instanceExtension___closed__2;
extern lean_object* l_IO_runMeta___rarg___closed__4;
lean_object* l_Lean_Meta_registerInstanceAttr___lambda__1___closed__2;
lean_object* l_Lean_Meta_addGlobalInstance___closed__4;
lean_object* lean_add_instance_old(lean_object*, lean_object*);
@ -3275,7 +3275,7 @@ lean_dec(x_7);
x_9 = l_List_map___main___at_Lean_Meta_addGlobalInstance___spec__1(x_8);
x_10 = l_Lean_mkConst(x_2, x_9);
x_11 = l_Lean_MetavarContext_Inhabited___closed__1;
x_12 = l_Lean_Meta_MetaHasEval___rarg___closed__4;
x_12 = l_IO_runMeta___rarg___closed__4;
x_13 = l_Lean_NameGenerator_Inhabited___closed__3;
x_14 = l_Lean_TraceState_Inhabited___closed__1;
x_15 = l_PersistentArray_empty___closed__3;

View file

@ -23,12 +23,15 @@ lean_object* l_Lean_KernelException_toMessageData___closed__19;
lean_object* l_unreachable_x21___rarg(lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__51;
lean_object* l___private_Init_Lean_Meta_Message_3__inferDomain_x3f___boxed(lean_object*, lean_object*);
lean_object* lean_io_prim_put_str(lean_object*, lean_object*);
extern lean_object* l_Lean_MessageData_ofList___closed__3;
lean_object* l___private_Init_Lean_Meta_Message_3__inferDomain_x3f___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__7;
lean_object* l_Lean_Format_pretty(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__39;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__35;
lean_object* l_Lean_KernelException_toMessageData___closed__24;
lean_object* l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__36;
lean_object* l_Lean_Meta_Exception_toMessageData(lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__31;
@ -41,13 +44,19 @@ lean_object* l_Lean_MessageData_arrayExpr_toMessageData___main(lean_object*, lea
lean_object* l_Lean_Meta_Exception_toMessageData___closed__43;
extern lean_object* l_Lean_Meta_Exception_toTraceMessageData___closed__82;
lean_object* l___private_Init_Lean_Meta_Message_3__inferDomain_x3f(lean_object*, lean_object*);
lean_object* l_Lean_Meta_MetaHasEval(lean_object*);
lean_object* l_Lean_Meta_Exception_mkAppTypeMismatchMessage___closed__7;
lean_object* lean_array_get_size(lean_object*);
lean_object* l_Lean_MessageData_formatAux___main(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__26;
lean_object* l_Lean_KernelException_toMessageData___closed__16;
lean_object* l_IO_print___at_Lean_Meta_MetaHasEval___spec__2(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkLetTypeMismatchMessage(lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__20;
extern lean_object* l_Lean_Meta_MetaHasEval___rarg___closed__4;
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__40;
lean_object* lean_nat_add(lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__22;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__9;
lean_object* l_Lean_KernelException_toMessageData___closed__37;
@ -60,6 +69,7 @@ lean_object* l_Lean_Meta_Exception_toMessageData___closed__8;
lean_object* l_Lean_KernelException_toMessageData___closed__6;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__17;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__23;
lean_object* lean_array_fget(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__4;
lean_object* l_Lean_mkProj(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkLetTypeMismatchMessage___closed__1;
@ -72,6 +82,7 @@ lean_object* l_Lean_KernelException_toMessageData___closed__29;
lean_object* l_Lean_KernelException_toMessageData(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkLetTypeMismatchMessage___closed__9;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__11;
lean_object* l_Lean_Meta_MetaHasEval___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__25;
lean_object* l_Lean_KernelException_toMessageData___closed__30;
lean_object* l_Lean_Meta_Exception_mkLetTypeMismatchMessage___closed__8;
@ -80,6 +91,7 @@ lean_object* l_Lean_Meta_Exception_toMessageData___closed__19;
extern lean_object* l_Lean_MessageData_coeOfArrayExpr___closed__2;
lean_object* l_Lean_Meta_Exception_mkLetTypeMismatchMessage___closed__4;
lean_object* l_Lean_KernelException_toMessageData___closed__18;
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__5;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__44;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__1;
@ -87,6 +99,7 @@ lean_object* l_Lean_KernelException_toMessageData___closed__33;
lean_object* lean_name_mk_string(lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__14;
lean_object* l_Lean_KernelException_toMessageData___closed__28;
extern lean_object* l_IO_println___rarg___closed__1;
extern lean_object* l_PersistentArray_empty___closed__3;
extern lean_object* l_Lean_Meta_Exception_toStr___closed__11;
extern lean_object* l_Lean_Meta_Exception_toTraceMessageData___closed__4;
@ -107,6 +120,7 @@ lean_object* l_Lean_Meta_Exception_toMessageData___closed__25;
lean_object* l_Lean_Meta_whnf(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_Message_4__whnf_x3f___boxed(lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__3;
extern lean_object* l_IO_runMeta___rarg___closed__4;
lean_object* l_Lean_KernelException_toMessageData___closed__40;
lean_object* l_Lean_KernelException_toMessageData___closed__9;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__3;
@ -115,6 +129,7 @@ lean_object* l_Lean_KernelException_toMessageData___closed__36;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__37;
lean_object* l___private_Init_Lean_Meta_Message_1__run_x3f___rarg___closed__1;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__42;
lean_object* l_IO_println___at_Lean_Meta_MetaHasEval___spec__1(lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_Message_5__mkCtx(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__1;
lean_object* l___private_Init_Lean_Meta_Message_1__run_x3f___rarg___closed__2;
@ -135,6 +150,7 @@ lean_object* l_Lean_mkApp(lean_object*, lean_object*);
lean_object* l_Lean_getMaxRecDepth(lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__13;
lean_object* l_Lean_Meta_Exception_mkAppTypeMismatchMessage___closed__2;
lean_object* l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkAppTypeMismatchMessage___closed__4;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__29;
lean_object* l_Lean_KernelException_toMessageData___closed__2;
@ -147,6 +163,7 @@ lean_object* l_Lean_KernelException_toMessageData___closed__41;
lean_object* l_Lean_KernelException_toMessageData___closed__23;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__7;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__49;
lean_object* l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkAppTypeMismatchMessage___closed__5;
extern lean_object* l_Lean_TraceState_Inhabited___closed__1;
lean_object* l_Lean_Meta_inferType(lean_object*, lean_object*, lean_object*);
@ -173,11 +190,15 @@ lean_object* l_Lean_mkBVar(lean_object*);
lean_object* l___private_Init_Lean_Meta_Message_2__inferType_x3f(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_mkAppTypeMismatchMessage___closed__6;
lean_object* l_Lean_mkConst(lean_object*, lean_object*);
lean_object* l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4(lean_object*, lean_object*);
lean_object* l_Lean_Meta_Exception_toMessageData___closed__15;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__16;
lean_object* l___private_Init_Lean_Meta_Message_1__run_x3f___rarg___closed__4;
lean_object* l_Lean_KernelException_toMessageData___closed__11;
extern lean_object* l_Lean_NameGenerator_Inhabited___closed__3;
lean_object* l_Lean_Meta_Exception_toMessageData___closed__20;
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_KernelException_toMessageData___closed__39;
lean_object* l_Lean_indentExpr(lean_object* x_1) {
_start:
@ -262,7 +283,7 @@ lean_ctor_set(x_11, 1, x_5);
lean_ctor_set(x_11, 2, x_9);
lean_ctor_set(x_11, 3, x_10);
lean_ctor_set(x_11, 4, x_7);
x_12 = l_Lean_Meta_MetaHasEval___rarg___closed__4;
x_12 = l_IO_runMeta___rarg___closed__4;
x_13 = l___private_Init_Lean_Meta_Message_1__run_x3f___rarg___closed__4;
x_14 = l_Lean_TraceState_Inhabited___closed__1;
x_15 = l_PersistentArray_empty___closed__3;
@ -1826,6 +1847,463 @@ return x_151;
}
}
}
lean_object* l_IO_print___at_Lean_Meta_MetaHasEval___spec__2(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = l_Lean_Options_empty;
x_4 = l_Lean_Format_pretty(x_1, x_3);
x_5 = lean_io_prim_put_str(x_4, x_2);
lean_dec(x_4);
return x_5;
}
}
lean_object* l_IO_println___at_Lean_Meta_MetaHasEval___spec__1(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_IO_print___at_Lean_Meta_MetaHasEval___spec__2(x_1, x_2);
if (lean_obj_tag(x_3) == 0)
{
lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_4 = lean_ctor_get(x_3, 1);
lean_inc(x_4);
lean_dec(x_3);
x_5 = l_IO_println___rarg___closed__1;
x_6 = lean_io_prim_put_str(x_5, x_4);
return x_6;
}
else
{
uint8_t x_7;
x_7 = !lean_is_exclusive(x_3);
if (x_7 == 0)
{
return x_3;
}
else
{
lean_object* x_8; lean_object* x_9; lean_object* x_10;
x_8 = lean_ctor_get(x_3, 0);
x_9 = lean_ctor_get(x_3, 1);
lean_inc(x_9);
lean_inc(x_8);
lean_dec(x_3);
x_10 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_10, 0, x_8);
lean_ctor_set(x_10, 1, x_9);
return x_10;
}
}
}
}
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; uint8_t x_5;
x_4 = lean_array_get_size(x_1);
x_5 = lean_nat_dec_lt(x_2, x_4);
lean_dec(x_4);
if (x_5 == 0)
{
lean_object* x_6; lean_object* x_7;
lean_dec(x_2);
x_6 = lean_box(0);
x_7 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_7, 0, x_6);
lean_ctor_set(x_7, 1, x_3);
return x_7;
}
else
{
lean_object* x_8; lean_object* x_9;
x_8 = lean_array_fget(x_1, x_2);
x_9 = l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4(x_8, x_3);
lean_dec(x_8);
if (lean_obj_tag(x_9) == 0)
{
lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_10 = lean_ctor_get(x_9, 1);
lean_inc(x_10);
lean_dec(x_9);
x_11 = lean_unsigned_to_nat(1u);
x_12 = lean_nat_add(x_2, x_11);
lean_dec(x_2);
x_2 = x_12;
x_3 = x_10;
goto _start;
}
else
{
uint8_t x_14;
lean_dec(x_2);
x_14 = !lean_is_exclusive(x_9);
if (x_14 == 0)
{
return x_9;
}
else
{
lean_object* x_15; lean_object* x_16; lean_object* x_17;
x_15 = lean_ctor_get(x_9, 0);
x_16 = lean_ctor_get(x_9, 1);
lean_inc(x_16);
lean_inc(x_15);
lean_dec(x_9);
x_17 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_17, 0, x_15);
lean_ctor_set(x_17, 1, x_16);
return x_17;
}
}
}
}
}
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; uint8_t x_5;
x_4 = lean_array_get_size(x_1);
x_5 = lean_nat_dec_lt(x_2, x_4);
lean_dec(x_4);
if (x_5 == 0)
{
lean_object* x_6; lean_object* x_7;
lean_dec(x_2);
x_6 = lean_box(0);
x_7 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_7, 0, x_6);
lean_ctor_set(x_7, 1, x_3);
return x_7;
}
else
{
lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11;
x_8 = lean_array_fget(x_1, x_2);
x_9 = lean_box(0);
x_10 = l_Lean_MessageData_formatAux___main(x_9, x_8);
x_11 = l_IO_println___at_Lean_Meta_MetaHasEval___spec__1(x_10, x_3);
if (lean_obj_tag(x_11) == 0)
{
lean_object* x_12; lean_object* x_13; lean_object* x_14;
x_12 = lean_ctor_get(x_11, 1);
lean_inc(x_12);
lean_dec(x_11);
x_13 = lean_unsigned_to_nat(1u);
x_14 = lean_nat_add(x_2, x_13);
lean_dec(x_2);
x_2 = x_14;
x_3 = x_12;
goto _start;
}
else
{
uint8_t x_16;
lean_dec(x_2);
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_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4(lean_object* x_1, lean_object* x_2) {
_start:
{
if (lean_obj_tag(x_1) == 0)
{
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = lean_ctor_get(x_1, 0);
x_4 = lean_unsigned_to_nat(0u);
x_5 = l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5(x_3, x_4, x_2);
return x_5;
}
else
{
lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_6 = lean_ctor_get(x_1, 0);
x_7 = lean_unsigned_to_nat(0u);
x_8 = l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6(x_6, x_7, x_2);
return x_8;
}
}
}
lean_object* l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_3 = lean_ctor_get(x_1, 0);
x_4 = lean_ctor_get(x_1, 1);
x_5 = l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4(x_3, x_2);
if (lean_obj_tag(x_5) == 0)
{
lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_6 = lean_ctor_get(x_5, 1);
lean_inc(x_6);
lean_dec(x_5);
x_7 = lean_unsigned_to_nat(0u);
x_8 = l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6(x_4, x_7, x_6);
return x_8;
}
else
{
uint8_t x_9;
x_9 = !lean_is_exclusive(x_5);
if (x_9 == 0)
{
return x_5;
}
else
{
lean_object* x_10; lean_object* x_11; lean_object* x_12;
x_10 = lean_ctor_get(x_5, 0);
x_11 = lean_ctor_get(x_5, 1);
lean_inc(x_11);
lean_inc(x_10);
lean_dec(x_5);
x_12 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_12, 0, x_10);
lean_ctor_set(x_12, 1, x_11);
return x_12;
}
}
}
}
lean_object* l_Lean_Meta_MetaHasEval___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5) {
_start:
{
uint8_t x_6; uint8_t x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
x_6 = 0;
x_7 = 1;
lean_inc(x_3);
x_8 = lean_alloc_ctor(0, 1, 7);
lean_ctor_set(x_8, 0, x_3);
lean_ctor_set_uint8(x_8, sizeof(void*)*1, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 1, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 2, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 3, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 4, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 5, x_6);
lean_ctor_set_uint8(x_8, sizeof(void*)*1 + 6, x_7);
x_9 = l_Lean_getMaxRecDepth(x_3);
x_10 = l_Lean_LocalContext_Inhabited___closed__2;
x_11 = l_Array_empty___closed__1;
x_12 = lean_unsigned_to_nat(0u);
x_13 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_13, 0, x_8);
lean_ctor_set(x_13, 1, x_10);
lean_ctor_set(x_13, 2, x_11);
lean_ctor_set(x_13, 3, x_12);
lean_ctor_set(x_13, 4, x_9);
x_14 = l_Lean_MetavarContext_Inhabited___closed__1;
x_15 = l_IO_runMeta___rarg___closed__4;
x_16 = l_Lean_NameGenerator_Inhabited___closed__3;
x_17 = l_Lean_TraceState_Inhabited___closed__1;
x_18 = l_PersistentArray_empty___closed__3;
x_19 = lean_alloc_ctor(0, 6, 0);
lean_ctor_set(x_19, 0, x_2);
lean_ctor_set(x_19, 1, x_14);
lean_ctor_set(x_19, 2, x_15);
lean_ctor_set(x_19, 3, x_16);
lean_ctor_set(x_19, 4, x_17);
lean_ctor_set(x_19, 5, x_18);
x_20 = lean_apply_2(x_4, x_13, x_19);
if (lean_obj_tag(x_20) == 0)
{
lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25;
x_21 = lean_ctor_get(x_20, 0);
lean_inc(x_21);
x_22 = lean_ctor_get(x_20, 1);
lean_inc(x_22);
lean_dec(x_20);
x_23 = lean_ctor_get(x_22, 4);
lean_inc(x_23);
x_24 = lean_ctor_get(x_23, 0);
lean_inc(x_24);
lean_dec(x_23);
x_25 = l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3(x_24, x_5);
lean_dec(x_24);
if (lean_obj_tag(x_25) == 0)
{
lean_object* x_26; lean_object* x_27; lean_object* x_28;
x_26 = lean_ctor_get(x_25, 1);
lean_inc(x_26);
lean_dec(x_25);
x_27 = lean_ctor_get(x_22, 0);
lean_inc(x_27);
lean_dec(x_22);
x_28 = lean_apply_4(x_1, x_27, x_3, x_21, x_26);
return x_28;
}
else
{
uint8_t x_29;
lean_dec(x_22);
lean_dec(x_21);
lean_dec(x_3);
lean_dec(x_1);
x_29 = !lean_is_exclusive(x_25);
if (x_29 == 0)
{
return x_25;
}
else
{
lean_object* x_30; lean_object* x_31; lean_object* x_32;
x_30 = lean_ctor_get(x_25, 0);
x_31 = lean_ctor_get(x_25, 1);
lean_inc(x_31);
lean_inc(x_30);
lean_dec(x_25);
x_32 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_32, 0, x_30);
lean_ctor_set(x_32, 1, x_31);
return x_32;
}
}
}
else
{
lean_object* x_33; lean_object* x_34; lean_object* x_35; lean_object* x_36; lean_object* x_37;
lean_dec(x_3);
lean_dec(x_1);
x_33 = lean_ctor_get(x_20, 0);
lean_inc(x_33);
x_34 = lean_ctor_get(x_20, 1);
lean_inc(x_34);
lean_dec(x_20);
x_35 = lean_ctor_get(x_34, 4);
lean_inc(x_35);
lean_dec(x_34);
x_36 = lean_ctor_get(x_35, 0);
lean_inc(x_36);
lean_dec(x_35);
x_37 = l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3(x_36, x_5);
lean_dec(x_36);
if (lean_obj_tag(x_37) == 0)
{
uint8_t x_38;
x_38 = !lean_is_exclusive(x_37);
if (x_38 == 0)
{
lean_object* x_39; lean_object* x_40; lean_object* x_41; lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45;
x_39 = lean_ctor_get(x_37, 0);
lean_dec(x_39);
x_40 = l_Lean_Meta_Exception_toMessageData(x_33);
x_41 = lean_box(0);
x_42 = l_Lean_MessageData_formatAux___main(x_41, x_40);
x_43 = l_Lean_Options_empty;
x_44 = l_Lean_Format_pretty(x_42, x_43);
x_45 = lean_alloc_ctor(18, 1, 0);
lean_ctor_set(x_45, 0, x_44);
lean_ctor_set_tag(x_37, 1);
lean_ctor_set(x_37, 0, x_45);
return x_37;
}
else
{
lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51; lean_object* x_52; lean_object* x_53;
x_46 = lean_ctor_get(x_37, 1);
lean_inc(x_46);
lean_dec(x_37);
x_47 = l_Lean_Meta_Exception_toMessageData(x_33);
x_48 = lean_box(0);
x_49 = l_Lean_MessageData_formatAux___main(x_48, x_47);
x_50 = l_Lean_Options_empty;
x_51 = l_Lean_Format_pretty(x_49, x_50);
x_52 = lean_alloc_ctor(18, 1, 0);
lean_ctor_set(x_52, 0, x_51);
x_53 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_53, 0, x_52);
lean_ctor_set(x_53, 1, x_46);
return x_53;
}
}
else
{
uint8_t x_54;
lean_dec(x_33);
x_54 = !lean_is_exclusive(x_37);
if (x_54 == 0)
{
return x_37;
}
else
{
lean_object* x_55; lean_object* x_56; lean_object* x_57;
x_55 = lean_ctor_get(x_37, 0);
x_56 = lean_ctor_get(x_37, 1);
lean_inc(x_56);
lean_inc(x_55);
lean_dec(x_37);
x_57 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_57, 0, x_55);
lean_ctor_set(x_57, 1, x_56);
return x_57;
}
}
}
}
}
lean_object* l_Lean_Meta_MetaHasEval(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = lean_alloc_closure((void*)(l_Lean_Meta_MetaHasEval___rarg), 5, 0);
return x_2;
}
}
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
x_4 = l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__5(x_1, x_2, x_3);
lean_dec(x_1);
return x_4;
}
}
lean_object* l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4;
x_4 = l_Array_forMAux___main___at_Lean_Meta_MetaHasEval___spec__6(x_1, x_2, x_3);
lean_dec(x_1);
return x_4;
}
}
lean_object* l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_PersistentArray_forMAux___main___at_Lean_Meta_MetaHasEval___spec__4(x_1, x_2);
lean_dec(x_1);
return x_3;
}
}
lean_object* l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_PersistentArray_forM___at_Lean_Meta_MetaHasEval___spec__3(x_1, x_2);
lean_dec(x_1);
return x_3;
}
}
lean_object* l___private_Init_Lean_Meta_Message_5__mkCtx(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{

View file

@ -182,7 +182,6 @@ extern lean_object* l_PersistentHashMap_insertAux___main___rarg___closed__3;
lean_object* l_Lean_Meta_SynthInstance_Consumernode_inhabited___closed__1;
lean_object* l_Array_iterateMAux___main___at_Lean_Meta_SynthInstance_getInstances___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_AssocList_foldlM___main___at_Lean_Meta_SynthInstance_newSubgoal___spec__5(lean_object*, lean_object*);
extern lean_object* l_Lean_mkReducibilityAttrs___lambda__1___closed__1;
size_t l_Lean_Expr_hash(lean_object*);
lean_object* lean_name_mk_string(lean_object*, lean_object*);
lean_object* l_Array_iterateMAux___main___at_Lean_Meta_SynthInstance_getInstances___spec__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -282,6 +281,7 @@ lean_object* l_Lean_mkApp(lean_object*, lean_object*);
lean_object* l_Lean_Meta_SynthInstance_newSubgoal___closed__2;
uint8_t l_Lean_Expr_hasMVar(lean_object*);
lean_object* l_Lean_Meta_SynthInstance_synth___main___closed__8;
extern lean_object* l_Nat_forMAux___main___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__87___closed__1;
lean_object* l_Array_umapMAux___main___at_Lean_Meta_SynthInstance_getInstances___spec__2___closed__1;
lean_object* l_List_foldlM___main___at___private_Init_Lean_Meta_SynthInstance_3__preprocessLevels___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_SynthInstance_addContext___boxed(lean_object*, lean_object*, lean_object*);
@ -398,7 +398,7 @@ lean_object* l_Lean_Meta_SynthInstance_mkInferTCGoalsLRAttr___lambda__1(lean_obj
_start:
{
lean_object* x_3;
x_3 = l_Lean_mkReducibilityAttrs___lambda__1___closed__1;
x_3 = l_Nat_forMAux___main___at___private_Init_Lean_MetavarContext_10__collectDeps___spec__87___closed__1;
return x_3;
}
}

View file

@ -1,6 +1,6 @@
// Lean compiler output
// Module: Init.Lean.Meta.Tactic
// Imports: Init.Lean.Meta.Tactic.Intro Init.Lean.Meta.Tactic.Assumption Init.Lean.Meta.Tactic.Apply Init.Lean.Meta.Tactic.Revert
// Imports: Init.Lean.Meta.Tactic.Intro Init.Lean.Meta.Tactic.Assumption Init.Lean.Meta.Tactic.Apply Init.Lean.Meta.Tactic.Revert Init.Lean.Meta.Tactic.Clear
#include "runtime/lean.h"
#if defined(__clang__)
#pragma clang diagnostic ignored "-Wunused-parameter"
@ -17,6 +17,7 @@ lean_object* initialize_Init_Lean_Meta_Tactic_Intro(lean_object*);
lean_object* initialize_Init_Lean_Meta_Tactic_Assumption(lean_object*);
lean_object* initialize_Init_Lean_Meta_Tactic_Apply(lean_object*);
lean_object* initialize_Init_Lean_Meta_Tactic_Revert(lean_object*);
lean_object* initialize_Init_Lean_Meta_Tactic_Clear(lean_object*);
static bool _G_initialized = false;
lean_object* initialize_Init_Lean_Meta_Tactic(lean_object* w) {
lean_object * res;
@ -34,6 +35,9 @@ lean_dec_ref(res);
res = initialize_Init_Lean_Meta_Tactic_Revert(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
res = initialize_Init_Lean_Meta_Tactic_Clear(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
return lean_mk_io_result(lean_box(0));
}
#ifdef __cplusplus

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -24,7 +24,7 @@ lean_object* l_Lean_Meta_throwTacticEx___rarg___boxed(lean_object*, lean_object*
lean_object* l_Lean_Meta_checkNotAssigned___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_ppGoal(lean_object*, lean_object*, lean_object*);
uint8_t lean_metavar_ctx_is_expr_assigned(lean_object*, lean_object*);
lean_object* l_Lean_ppGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ppGoal(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_getMVarType(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Meta_Tactic_Util_1__regTraceClasses(lean_object*);
lean_object* lean_name_mk_string(lean_object*, lean_object*);
@ -302,24 +302,22 @@ return x_4;
lean_object* l_Lean_Meta_ppGoal(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10;
lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9;
x_4 = lean_ctor_get(x_3, 0);
lean_inc(x_4);
x_5 = lean_ctor_get(x_3, 1);
lean_inc(x_5);
x_6 = lean_ctor_get(x_2, 1);
x_6 = lean_ctor_get(x_2, 0);
lean_inc(x_6);
x_7 = lean_ctor_get(x_2, 0);
lean_inc(x_7);
lean_dec(x_2);
x_8 = lean_ctor_get(x_7, 0);
lean_inc(x_8);
lean_dec(x_7);
x_9 = l_Lean_ppGoal(x_4, x_5, x_6, x_8, x_1);
x_10 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_10, 0, x_9);
lean_ctor_set(x_10, 1, x_3);
return x_10;
x_7 = lean_ctor_get(x_6, 0);
lean_inc(x_7);
lean_dec(x_6);
x_8 = l_Lean_ppGoal(x_4, x_5, x_7, x_1);
x_9 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_9, 0, x_8);
lean_ctor_set(x_9, 1, x_3);
return x_9;
}
}
lean_object* _init_l___private_Init_Lean_Meta_Tactic_Util_1__regTraceClasses___closed__1() {

View file

@ -22,7 +22,6 @@ lean_object* l_unreachable_x21___rarg(lean_object*);
uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_whnfCore___spec__7(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_isRecStuck___at_Lean_Meta_unfoldDefinition_x3f___spec__17(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Util_WHNF_5__toCtorWhenK___at_Lean_Meta_unfoldDefinition_x3f___spec__9(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_EIO_Monad___closed__1;
extern lean_object* l_Lean_noConfusionExt;
lean_object* l_Lean_WHNF_reduceRec___at_Lean_Meta_unfoldDefinition_x3f___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_isRecStuck___at_Lean_Meta_unfoldDefinition_x3f___spec__17___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -31,7 +30,6 @@ lean_object* l___private_Init_Lean_Util_WHNF_9__deltaBetaDefinition___at_Lean_Me
lean_object* lean_metavar_ctx_get_expr_assignment(lean_object*, lean_object*);
lean_object* l_Lean_Meta_isExprDefEqAux(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_reduceRec___at_Lean_Meta_whnfCore___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_ReaderT_Monad___rarg(lean_object*);
lean_object* l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfCore___spec__8(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_setWHNFRef___closed__1;
lean_object* l_Lean_Meta_isAuxDef_x3f___boxed(lean_object*, lean_object*, lean_object*);
@ -76,7 +74,6 @@ lean_object* l___private_Init_Lean_Util_WHNF_8__deltaDefinition___at_Lean_Meta_u
lean_object* l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1(lean_object*, lean_object*, lean_object*);
uint8_t l_Array_anyRangeMAux___main___at_Lean_Meta_unfoldDefinition_x3f___spec__12(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*);
lean_object* l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1;
lean_object* l_Lean_WHNF_reduceQuotRec___at_Lean_Meta_whnfCore___spec__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Init_Lean_Expr_3__getAppArgsAux___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_whnf(lean_object*, lean_object*, lean_object*);
@ -132,6 +129,7 @@ lean_object* l_Lean_mkConst(lean_object*, lean_object*);
lean_object* l_Lean_WHNF_reduceRec___at_Lean_Meta_whnfCore___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_unfoldDefinition_x3f___spec__14___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_isQuotRecStuck___at_Lean_Meta_unfoldDefinition_x3f___spec__16(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
lean_object* l___private_Init_Lean_Util_WHNF_9__deltaBetaDefinition___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_anyRangeMAux___main___at_Lean_Meta_whnfCore___spec__7___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
@ -4989,20 +4987,11 @@ return x_8;
}
}
}
lean_object* _init_l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_EIO_Monad___closed__1;
x_2 = l_ReaderT_Monad___rarg(x_1);
return x_2;
}
}
lean_object* l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
_start:
{
lean_object* x_4; lean_object* x_5;
x_4 = l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1;
x_4 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_5 = l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_unfoldDefinition_x3f___spec__14(x_4, x_1, x_2, x_3);
return x_5;
}
@ -10846,7 +10835,7 @@ lean_object* l_Lean_WHNF_whnfCore___main___at_Lean_Meta_whnfCore___spec__1(lean_
_start:
{
lean_object* x_4; lean_object* x_5;
x_4 = l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1;
x_4 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_5 = l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfCore___spec__8(x_4, x_1, x_2, x_3);
return x_5;
}
@ -10934,7 +10923,7 @@ lean_object* _init_l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___ma
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1;
x_1 = l_Lean_MetavarContext_MkBinding_mkBinding___closed__1;
x_2 = l_Lean_Expr_Inhabited;
x_3 = l_monadInhabited___rarg(x_1, x_2);
return x_3;
@ -11602,8 +11591,6 @@ if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l___private_Init_Lean_Util_WHNF_5__toCtorWhenK___at_Lean_Meta_unfoldDefinition_x3f___spec__9___closed__1 = _init_l___private_Init_Lean_Util_WHNF_5__toCtorWhenK___at_Lean_Meta_unfoldDefinition_x3f___spec__9___closed__1();
lean_mark_persistent(l___private_Init_Lean_Util_WHNF_5__toCtorWhenK___at_Lean_Meta_unfoldDefinition_x3f___spec__9___closed__1);
l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1 = _init_l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1();
lean_mark_persistent(l_Lean_WHNF_whnfCore___main___at_Lean_Meta_unfoldDefinition_x3f___spec__5___closed__1);
l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1 = _init_l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1();
lean_mark_persistent(l_Lean_WHNF_whnfEasyCases___main___at_Lean_Meta_whnfImpl___main___spec__1___closed__1);
l_Lean_Meta_setWHNFRef___closed__1 = _init_l_Lean_Meta_setWHNFRef___closed__1();

File diff suppressed because it is too large Load diff

View file

@ -29,6 +29,7 @@ lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__
lean_object* l_Lean_Parser_Term_tacticStxQuot___closed__4;
lean_object* l_Lean_Parser_Term_tacticStxQuot___elambda__1___closed__4;
extern lean_object* l_Lean_Parser_manyAux___main___closed__1;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__7;
lean_object* l_Lean_Parser_Tactic_revert___closed__2;
lean_object* l_Lean_Parser_Term_tacticStxQuot___closed__5;
lean_object* l_Lean_Parser_Tactic_case___closed__6;
@ -36,6 +37,7 @@ lean_object* l_Lean_Parser_andthenInfo(lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_have___elambda__1___closed__7;
lean_object* l_Lean_Parser_Tactic_apply___closed__2;
lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__1;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__14;
lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__5;
@ -53,6 +55,7 @@ lean_object* l_Lean_Parser_Tactic_revert___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_seq;
lean_object* l_Lean_Parser_Tactic_skip___closed__3;
lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Tactic_seq___elambda__1___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_traceState___elambda__1___closed__5;
lean_object* l_Lean_Parser_Tactic_intro___closed__4;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__3;
@ -60,7 +63,9 @@ lean_object* l_Lean_Parser_regTacticParserAttribute___closed__2;
lean_object* l_Lean_Parser_Term_tacticBlock___closed__3;
lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__7;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlock(lean_object*);
extern lean_object* l_Lean_Parser_Term_subst___elambda__1___closed__1;
extern lean_object* l_Lean_Parser_Term_explicitUniv___elambda__1___closed__7;
lean_object* l_Lean_Parser_Tactic_clear___closed__6;
lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__4;
extern lean_object* l_Lean_Parser_Term_have___closed__3;
@ -68,6 +73,7 @@ lean_object* l_Lean_Parser_ParserState_pushSyntax(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly;
lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_revert___elambda__1___spec__1(lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_ident;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_underscore___closed__1;
extern lean_object* l_Lean_Parser_Term_subtype___closed__1;
lean_object* l_Lean_Parser_Tactic_skip___closed__2;
@ -78,6 +84,7 @@ lean_object* l_Lean_Parser_Term_tacticStxQuot___closed__3;
lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_exact___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__7;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__7;
lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__1;
lean_object* l_Lean_Parser_regTacticParserAttribute___closed__1;
lean_object* l_Lean_Parser_Tactic_underscore;
@ -87,6 +94,7 @@ lean_object* l_Lean_Parser_Tactic_traceState___elambda__1___closed__1;
lean_object* l_Lean_Parser_registerBuiltinDynamicParserAttribute(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_regBuiltinTacticParserAttr(lean_object*);
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__5;
lean_object* l_Lean_Parser_Tactic_paren___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_ParserState_mkTrailingNode(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__9;
@ -102,11 +110,13 @@ lean_object* lean_string_append(lean_object*, lean_object*);
lean_object* l_Lean_Parser_tokenFn(lean_object*, lean_object*);
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_nestedTacticBlockCurly(lean_object*);
lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_subst___closed__4;
lean_object* l_Array_back___at_Lean_Parser_checkStackTopFn___spec__1(lean_object*);
lean_object* l_Lean_Parser_Tactic_intros___closed__5;
lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__2;
lean_object* l_Lean_Parser_sepBy1Fn___at_Lean_Parser_Tactic_seq___elambda__1___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_orelse___closed__3;
lean_object* l_Lean_Parser_Tactic_clear___closed__4;
lean_object* l_Lean_Parser_Tactic_nonEmptySeq;
lean_object* l_Lean_Parser_Tactic_revert___closed__1;
lean_object* l_Lean_Parser_Tactic_skip___closed__1;
@ -124,21 +134,29 @@ lean_object* l_Lean_Parser_Tactic_apply___closed__5;
lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__3;
lean_object* l_Lean_Parser_Tactic_assumption___closed__4;
lean_object* l_Lean_Parser_Tactic_intros___closed__6;
lean_object* l_Lean_Parser_Tactic_clear___closed__1;
lean_object* l_Lean_Parser_Tactic_clear___closed__2;
lean_object* l_Lean_Parser_Tactic_clear;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__3;
lean_object* l_Lean_Parser_tacticParser(lean_object*);
lean_object* l_Lean_Parser_Tactic_case___closed__4;
lean_object* l_Lean_Parser_regBuiltinTacticParserAttr___closed__2;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__13;
lean_object* l_Lean_Parser_Tactic_subst___closed__1;
lean_object* l_Lean_Parser_Tactic_refine___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__11;
lean_object* l_Lean_Parser_Tactic_intro___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_orelse___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__5;
lean_object* l_Lean_Parser_Term_tacticStxQuot;
lean_object* l_Lean_Parser_Term_tacticStxQuot___closed__6;
lean_object* l_Lean_Parser_Tactic_assumption;
lean_object* l_Lean_Parser_Tactic_intros___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_subst___closed__2;
lean_object* l_Lean_Parser_Tactic_traceState___closed__5;
extern lean_object* l_Lean_Parser_Term_structInst___elambda__1___closed__5;
extern lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_clear___closed__3;
lean_object* l_Lean_Parser_Tactic_refine___elambda__1___closed__3;
extern lean_object* l_Lean_Parser_identNoAntiquot___closed__1;
lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1___closed__3;
@ -160,6 +178,7 @@ lean_object* l___regBuiltinParser_Lean_Parser_Tactic_case(lean_object*);
lean_object* l_Lean_Parser_Tactic_seq___closed__5;
lean_object* l_Lean_Parser_Tactic_ident_x27___closed__2;
lean_object* l_Lean_Parser_Tactic_allGoals___closed__3;
lean_object* l_Lean_Parser_Tactic_subst___closed__6;
lean_object* l_Lean_Parser_Tactic_refine___elambda__1___closed__5;
lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__5;
lean_object* l_Lean_Parser_nodeInfo(lean_object*, lean_object*);
@ -167,9 +186,11 @@ lean_object* l_Lean_Parser_Tactic_allGoals___elambda__1___closed__5;
lean_object* l_Lean_Parser_Tactic_seq___closed__3;
lean_object* l_Lean_Parser_Tactic_assumption___closed__1;
lean_object* l_Lean_Parser_Tactic_apply___closed__3;
lean_object* l_Lean_Parser_Tactic_clear___closed__5;
lean_object* lean_nat_sub(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_revert;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__3;
lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*);
lean_object* l_Lean_Parser_Tactic_skip___elambda__1___closed__7;
lean_object* l_Lean_Parser_nonReservedSymbolInfo(lean_object*, uint8_t);
@ -222,6 +243,7 @@ lean_object* l_Lean_Parser_Tactic_exact___elambda__1___closed__8;
lean_object* l_Lean_Parser_Tactic_ident_x27;
lean_object* l_Lean_Parser_Tactic_exact___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_exact___closed__5;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_skip___elambda__1___closed__2;
extern lean_object* l_Lean_mkAppStx___closed__6;
lean_object* l_Lean_Parser_Tactic_paren___closed__3;
@ -249,6 +271,7 @@ lean_object* l_Lean_Parser_ParserState_restore(lean_object*, lean_object*, lean_
lean_object* l_Lean_Parser_Tactic_paren___closed__1;
lean_object* l_Lean_Parser_Term_tacticStxQuot___elambda__1___closed__7;
lean_object* l_Lean_Parser_Tactic_paren___closed__2;
lean_object* l_Lean_Parser_Tactic_subst___closed__3;
lean_object* l_Lean_Parser_ParserState_popSyntax(lean_object*);
lean_object* l_Lean_Parser_Tactic_paren___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__1;
@ -259,6 +282,8 @@ lean_object* l_Lean_Parser_Tactic_case___closed__5;
lean_object* l_Lean_Parser_Tactic_orelse___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_orelse;
lean_object* l_Lean_Parser_Tactic_allGoals___closed__6;
lean_object* l_Lean_Parser_Tactic_subst___closed__5;
lean_object* l_Lean_Parser_Tactic_subst;
lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__2;
lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_intros___elambda__1___spec__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_intros___closed__4;
@ -272,11 +297,13 @@ lean_object* l_Lean_Parser_Tactic_case___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_refine___closed__1;
lean_object* l_Lean_Parser_Tactic_paren___closed__4;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___closed__2;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_refine___closed__2;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_exact(lean_object*);
lean_object* l_Lean_Parser_Tactic_assumption___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_revert___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_case___closed__3;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_clear(lean_object*);
extern lean_object* l___private_Init_Lean_Parser_Parser_12__antiquotNestedExpr___elambda__1___closed__7;
lean_object* l_Lean_Parser_Tactic_skip___elambda__1___closed__1;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_allGoals(lean_object*);
@ -294,6 +321,8 @@ lean_object* l_Lean_Parser_Tactic_skip___elambda__1___closed__4;
lean_object* l_Lean_Parser_symbolInfo(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_revert___elambda__1___closed__5;
lean_object* l_Lean_Parser_Tactic_apply___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__8;
lean_object* l_Lean_Parser_Tactic_orelse___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__4;
lean_object* l_Lean_Parser_Tactic_assumption___closed__3;
@ -315,6 +344,7 @@ lean_object* l_Lean_Parser_Tactic_traceState___elambda__1___closed__3;
lean_object* l___private_Init_Lean_Parser_Parser_2__sepByFnAux___main___at_Lean_Parser_Tactic_seq___elambda__1___spec__2(uint8_t, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_intros;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1___closed__3;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__5;
lean_object* l_Lean_Parser_Tactic_case___closed__7;
lean_object* l_Lean_Parser_Term_tacticStxQuot___elambda__1(lean_object*, lean_object*);
@ -358,6 +388,8 @@ lean_object* l_Lean_Parser_Tactic_orelse___closed__6;
lean_object* l_Lean_Parser_Tactic_intro___closed__5;
lean_object* l_Lean_Parser_Tactic_exact___elambda__1___closed__7;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_skip(lean_object*);
lean_object* l_Lean_Parser_Tactic_clear___elambda__1___closed__6;
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_subst(lean_object*);
lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_refine___elambda__1___closed__1;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlock___elambda__1___closed__7;
@ -376,6 +408,8 @@ lean_object* l___regBuiltinParser_Lean_Parser_Tactic_orelse(lean_object*);
lean_object* l_Lean_Parser_Tactic_traceState___elambda__1___closed__2;
lean_object* l_Lean_Parser_Tactic_allGoals___closed__1;
lean_object* l_Lean_Parser_Tactic_traceState;
lean_object* l_Lean_Parser_Tactic_subst___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_subst___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___elambda__1(lean_object*, lean_object*);
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_traceState(lean_object*);
lean_object* l_Lean_Parser_Term_tacticBlock___closed__5;
@ -2250,6 +2284,666 @@ x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
return x_6;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("clear");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_seq___elambda__1___closed__2;
x_2 = l_Lean_Parser_Tactic_clear___elambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_2 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__1;
x_2 = l_Lean_Parser_Tactic_clear___elambda__1___closed__3;
x_3 = 1;
x_4 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("clear ");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__5;
x_2 = l_String_trim(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Tactic_clear___elambda__1___closed__6;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__7;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Parser_Tactic_clear___elambda__1(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; uint8_t x_5;
x_3 = l_Lean_Parser_Tactic_clear___elambda__1___closed__4;
x_4 = lean_ctor_get(x_3, 1);
lean_inc(x_4);
lean_inc(x_2);
lean_inc(x_1);
x_5 = l_Lean_Parser_tryAnti(x_1, x_2);
if (x_5 == 0)
{
lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11;
lean_dec(x_4);
x_6 = lean_ctor_get(x_2, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = l_Lean_Parser_Tactic_clear___elambda__1___closed__6;
x_9 = l_Lean_Parser_Tactic_clear___elambda__1___closed__8;
lean_inc(x_1);
x_10 = l_Lean_Parser_nonReservedSymbolFnAux(x_8, x_9, x_1, x_2);
x_11 = lean_ctor_get(x_10, 3);
lean_inc(x_11);
if (lean_obj_tag(x_11) == 0)
{
lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
x_12 = lean_ctor_get(x_10, 0);
lean_inc(x_12);
x_13 = lean_array_get_size(x_12);
lean_dec(x_12);
lean_inc(x_1);
x_14 = l_Lean_Parser_ident___elambda__1(x_1, x_10);
x_15 = lean_ctor_get(x_14, 3);
lean_inc(x_15);
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;
x_16 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_revert___elambda__1___spec__1(x_1, x_14);
x_17 = l_Lean_nullKind;
x_18 = l_Lean_Parser_ParserState_mkNode(x_16, x_17, x_13);
x_19 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_20 = l_Lean_Parser_ParserState_mkNode(x_18, x_19, x_7);
return x_20;
}
else
{
lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24;
lean_dec(x_15);
lean_dec(x_1);
x_21 = l_Lean_nullKind;
x_22 = l_Lean_Parser_ParserState_mkNode(x_14, x_21, x_13);
x_23 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_24 = l_Lean_Parser_ParserState_mkNode(x_22, x_23, x_7);
return x_24;
}
}
else
{
lean_object* x_25; lean_object* x_26;
lean_dec(x_11);
lean_dec(x_1);
x_25 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_26 = l_Lean_Parser_ParserState_mkNode(x_10, x_25, x_7);
return x_26;
}
}
else
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31;
x_27 = lean_ctor_get(x_2, 0);
lean_inc(x_27);
x_28 = lean_array_get_size(x_27);
lean_dec(x_27);
x_29 = lean_ctor_get(x_2, 1);
lean_inc(x_29);
lean_inc(x_1);
x_30 = lean_apply_2(x_4, x_1, x_2);
x_31 = lean_ctor_get(x_30, 3);
lean_inc(x_31);
if (lean_obj_tag(x_31) == 0)
{
lean_dec(x_29);
lean_dec(x_28);
lean_dec(x_1);
return x_30;
}
else
{
lean_object* x_32; lean_object* x_33; uint8_t x_34;
x_32 = lean_ctor_get(x_31, 0);
lean_inc(x_32);
lean_dec(x_31);
x_33 = lean_ctor_get(x_30, 1);
lean_inc(x_33);
x_34 = lean_nat_dec_eq(x_33, x_29);
lean_dec(x_33);
if (x_34 == 0)
{
lean_dec(x_32);
lean_dec(x_29);
lean_dec(x_28);
lean_dec(x_1);
return x_30;
}
else
{
lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41;
lean_inc(x_29);
x_35 = l_Lean_Parser_ParserState_restore(x_30, x_28, x_29);
lean_dec(x_28);
x_36 = lean_ctor_get(x_35, 0);
lean_inc(x_36);
x_37 = lean_array_get_size(x_36);
lean_dec(x_36);
x_38 = l_Lean_Parser_Tactic_clear___elambda__1___closed__6;
x_39 = l_Lean_Parser_Tactic_clear___elambda__1___closed__8;
lean_inc(x_1);
x_40 = l_Lean_Parser_nonReservedSymbolFnAux(x_38, x_39, x_1, x_35);
x_41 = lean_ctor_get(x_40, 3);
lean_inc(x_41);
if (lean_obj_tag(x_41) == 0)
{
lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45;
x_42 = lean_ctor_get(x_40, 0);
lean_inc(x_42);
x_43 = lean_array_get_size(x_42);
lean_dec(x_42);
lean_inc(x_1);
x_44 = l_Lean_Parser_ident___elambda__1(x_1, x_40);
x_45 = lean_ctor_get(x_44, 3);
lean_inc(x_45);
if (lean_obj_tag(x_45) == 0)
{
lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51;
x_46 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_revert___elambda__1___spec__1(x_1, x_44);
x_47 = l_Lean_nullKind;
x_48 = l_Lean_Parser_ParserState_mkNode(x_46, x_47, x_43);
x_49 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_50 = l_Lean_Parser_ParserState_mkNode(x_48, x_49, x_37);
x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_32, x_29);
lean_dec(x_29);
return x_51;
}
else
{
lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56;
lean_dec(x_45);
lean_dec(x_1);
x_52 = l_Lean_nullKind;
x_53 = l_Lean_Parser_ParserState_mkNode(x_44, x_52, x_43);
x_54 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_55 = l_Lean_Parser_ParserState_mkNode(x_53, x_54, x_37);
x_56 = l_Lean_Parser_mergeOrElseErrors(x_55, x_32, x_29);
lean_dec(x_29);
return x_56;
}
}
else
{
lean_object* x_57; lean_object* x_58; lean_object* x_59;
lean_dec(x_41);
lean_dec(x_1);
x_57 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_58 = l_Lean_Parser_ParserState_mkNode(x_40, x_57, x_37);
x_59 = l_Lean_Parser_mergeOrElseErrors(x_58, x_32, x_29);
lean_dec(x_29);
return x_59;
}
}
}
}
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__1() {
_start:
{
lean_object* x_1; uint8_t x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__6;
x_2 = 0;
x_3 = l_Lean_Parser_nonReservedSymbolInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_ident;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Tactic_clear___closed__1;
x_4 = l_Lean_Parser_andthenInfo(x_3, x_2);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_2 = l_Lean_Parser_Tactic_clear___closed__2;
x_3 = l_Lean_Parser_nodeInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Tactic_clear___elambda__1___closed__4;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Tactic_clear___closed__3;
x_4 = l_Lean_Parser_orelseInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_clear___elambda__1), 2, 0);
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_clear___closed__4;
x_2 = l_Lean_Parser_Tactic_clear___closed__5;
x_3 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_clear() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_Parser_Tactic_clear___closed__6;
return x_1;
}
}
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_clear(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6;
x_2 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4;
x_3 = l_Lean_Parser_Tactic_clear___elambda__1___closed__2;
x_4 = 1;
x_5 = l_Lean_Parser_Tactic_clear;
x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
return x_6;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_seq___elambda__1___closed__2;
x_2 = l_Lean_Parser_Term_subst___elambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_2 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_subst___elambda__1___closed__1;
x_2 = l_Lean_Parser_Tactic_subst___elambda__1___closed__2;
x_3 = 1;
x_4 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__4() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("subst ");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__4;
x_2 = l_String_trim(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Char_HasRepr___closed__1;
x_2 = l_Lean_Parser_Tactic_subst___elambda__1___closed__5;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__6;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Parser_Tactic_subst___elambda__1(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3; lean_object* x_4; uint8_t x_5;
x_3 = l_Lean_Parser_Tactic_subst___elambda__1___closed__3;
x_4 = lean_ctor_get(x_3, 1);
lean_inc(x_4);
lean_inc(x_2);
lean_inc(x_1);
x_5 = l_Lean_Parser_tryAnti(x_1, x_2);
if (x_5 == 0)
{
lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11;
lean_dec(x_4);
x_6 = lean_ctor_get(x_2, 0);
lean_inc(x_6);
x_7 = lean_array_get_size(x_6);
lean_dec(x_6);
x_8 = l_Lean_Parser_Tactic_subst___elambda__1___closed__5;
x_9 = l_Lean_Parser_Tactic_subst___elambda__1___closed__7;
lean_inc(x_1);
x_10 = l_Lean_Parser_nonReservedSymbolFnAux(x_8, x_9, x_1, x_2);
x_11 = lean_ctor_get(x_10, 3);
lean_inc(x_11);
if (lean_obj_tag(x_11) == 0)
{
lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
x_12 = lean_ctor_get(x_10, 0);
lean_inc(x_12);
x_13 = lean_array_get_size(x_12);
lean_dec(x_12);
lean_inc(x_1);
x_14 = l_Lean_Parser_ident___elambda__1(x_1, x_10);
x_15 = lean_ctor_get(x_14, 3);
lean_inc(x_15);
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;
x_16 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_revert___elambda__1___spec__1(x_1, x_14);
x_17 = l_Lean_nullKind;
x_18 = l_Lean_Parser_ParserState_mkNode(x_16, x_17, x_13);
x_19 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_20 = l_Lean_Parser_ParserState_mkNode(x_18, x_19, x_7);
return x_20;
}
else
{
lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24;
lean_dec(x_15);
lean_dec(x_1);
x_21 = l_Lean_nullKind;
x_22 = l_Lean_Parser_ParserState_mkNode(x_14, x_21, x_13);
x_23 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_24 = l_Lean_Parser_ParserState_mkNode(x_22, x_23, x_7);
return x_24;
}
}
else
{
lean_object* x_25; lean_object* x_26;
lean_dec(x_11);
lean_dec(x_1);
x_25 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_26 = l_Lean_Parser_ParserState_mkNode(x_10, x_25, x_7);
return x_26;
}
}
else
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31;
x_27 = lean_ctor_get(x_2, 0);
lean_inc(x_27);
x_28 = lean_array_get_size(x_27);
lean_dec(x_27);
x_29 = lean_ctor_get(x_2, 1);
lean_inc(x_29);
lean_inc(x_1);
x_30 = lean_apply_2(x_4, x_1, x_2);
x_31 = lean_ctor_get(x_30, 3);
lean_inc(x_31);
if (lean_obj_tag(x_31) == 0)
{
lean_dec(x_29);
lean_dec(x_28);
lean_dec(x_1);
return x_30;
}
else
{
lean_object* x_32; lean_object* x_33; uint8_t x_34;
x_32 = lean_ctor_get(x_31, 0);
lean_inc(x_32);
lean_dec(x_31);
x_33 = lean_ctor_get(x_30, 1);
lean_inc(x_33);
x_34 = lean_nat_dec_eq(x_33, x_29);
lean_dec(x_33);
if (x_34 == 0)
{
lean_dec(x_32);
lean_dec(x_29);
lean_dec(x_28);
lean_dec(x_1);
return x_30;
}
else
{
lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean_object* x_40; lean_object* x_41;
lean_inc(x_29);
x_35 = l_Lean_Parser_ParserState_restore(x_30, x_28, x_29);
lean_dec(x_28);
x_36 = lean_ctor_get(x_35, 0);
lean_inc(x_36);
x_37 = lean_array_get_size(x_36);
lean_dec(x_36);
x_38 = l_Lean_Parser_Tactic_subst___elambda__1___closed__5;
x_39 = l_Lean_Parser_Tactic_subst___elambda__1___closed__7;
lean_inc(x_1);
x_40 = l_Lean_Parser_nonReservedSymbolFnAux(x_38, x_39, x_1, x_35);
x_41 = lean_ctor_get(x_40, 3);
lean_inc(x_41);
if (lean_obj_tag(x_41) == 0)
{
lean_object* x_42; lean_object* x_43; lean_object* x_44; lean_object* x_45;
x_42 = lean_ctor_get(x_40, 0);
lean_inc(x_42);
x_43 = lean_array_get_size(x_42);
lean_dec(x_42);
lean_inc(x_1);
x_44 = l_Lean_Parser_ident___elambda__1(x_1, x_40);
x_45 = lean_ctor_get(x_44, 3);
lean_inc(x_45);
if (lean_obj_tag(x_45) == 0)
{
lean_object* x_46; lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean_object* x_51;
x_46 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_revert___elambda__1___spec__1(x_1, x_44);
x_47 = l_Lean_nullKind;
x_48 = l_Lean_Parser_ParserState_mkNode(x_46, x_47, x_43);
x_49 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_50 = l_Lean_Parser_ParserState_mkNode(x_48, x_49, x_37);
x_51 = l_Lean_Parser_mergeOrElseErrors(x_50, x_32, x_29);
lean_dec(x_29);
return x_51;
}
else
{
lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55; lean_object* x_56;
lean_dec(x_45);
lean_dec(x_1);
x_52 = l_Lean_nullKind;
x_53 = l_Lean_Parser_ParserState_mkNode(x_44, x_52, x_43);
x_54 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_55 = l_Lean_Parser_ParserState_mkNode(x_53, x_54, x_37);
x_56 = l_Lean_Parser_mergeOrElseErrors(x_55, x_32, x_29);
lean_dec(x_29);
return x_56;
}
}
else
{
lean_object* x_57; lean_object* x_58; lean_object* x_59;
lean_dec(x_41);
lean_dec(x_1);
x_57 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_58 = l_Lean_Parser_ParserState_mkNode(x_40, x_57, x_37);
x_59 = l_Lean_Parser_mergeOrElseErrors(x_58, x_32, x_29);
lean_dec(x_29);
return x_59;
}
}
}
}
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__1() {
_start:
{
lean_object* x_1; uint8_t x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__5;
x_2 = 0;
x_3 = l_Lean_Parser_nonReservedSymbolInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_ident;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Tactic_subst___closed__1;
x_4 = l_Lean_Parser_andthenInfo(x_3, x_2);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_2 = l_Lean_Parser_Tactic_subst___closed__2;
x_3 = l_Lean_Parser_nodeInfo(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Tactic_subst___elambda__1___closed__3;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Tactic_subst___closed__3;
x_4 = l_Lean_Parser_orelseInfo(x_2, x_3);
return x_4;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Parser_Tactic_subst___elambda__1), 2, 0);
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Tactic_subst___closed__4;
x_2 = l_Lean_Parser_Tactic_subst___closed__5;
x_3 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Tactic_subst() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_Parser_Tactic_subst___closed__6;
return x_1;
}
}
lean_object* l___regBuiltinParser_Lean_Parser_Tactic_subst(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; uint8_t x_4; lean_object* x_5; lean_object* x_6;
x_2 = l_Lean_Parser_regBuiltinTacticParserAttr___closed__4;
x_3 = l_Lean_Parser_Tactic_subst___elambda__1___closed__1;
x_4 = 1;
x_5 = l_Lean_Parser_Tactic_subst;
x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
return x_6;
}
}
lean_object* _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__1() {
_start:
{
@ -7280,6 +7974,70 @@ lean_mark_persistent(l_Lean_Parser_Tactic_revert);
res = l___regBuiltinParser_Lean_Parser_Tactic_revert(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Parser_Tactic_clear___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__1();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__1);
l_Lean_Parser_Tactic_clear___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__2();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__2);
l_Lean_Parser_Tactic_clear___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__3();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__3);
l_Lean_Parser_Tactic_clear___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__4();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__4);
l_Lean_Parser_Tactic_clear___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__5();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__5);
l_Lean_Parser_Tactic_clear___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__6();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__6);
l_Lean_Parser_Tactic_clear___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__7();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__7);
l_Lean_Parser_Tactic_clear___elambda__1___closed__8 = _init_l_Lean_Parser_Tactic_clear___elambda__1___closed__8();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___elambda__1___closed__8);
l_Lean_Parser_Tactic_clear___closed__1 = _init_l_Lean_Parser_Tactic_clear___closed__1();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__1);
l_Lean_Parser_Tactic_clear___closed__2 = _init_l_Lean_Parser_Tactic_clear___closed__2();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__2);
l_Lean_Parser_Tactic_clear___closed__3 = _init_l_Lean_Parser_Tactic_clear___closed__3();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__3);
l_Lean_Parser_Tactic_clear___closed__4 = _init_l_Lean_Parser_Tactic_clear___closed__4();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__4);
l_Lean_Parser_Tactic_clear___closed__5 = _init_l_Lean_Parser_Tactic_clear___closed__5();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__5);
l_Lean_Parser_Tactic_clear___closed__6 = _init_l_Lean_Parser_Tactic_clear___closed__6();
lean_mark_persistent(l_Lean_Parser_Tactic_clear___closed__6);
l_Lean_Parser_Tactic_clear = _init_l_Lean_Parser_Tactic_clear();
lean_mark_persistent(l_Lean_Parser_Tactic_clear);
res = l___regBuiltinParser_Lean_Parser_Tactic_clear(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Parser_Tactic_subst___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__1();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__1);
l_Lean_Parser_Tactic_subst___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__2();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__2);
l_Lean_Parser_Tactic_subst___elambda__1___closed__3 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__3();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__3);
l_Lean_Parser_Tactic_subst___elambda__1___closed__4 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__4();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__4);
l_Lean_Parser_Tactic_subst___elambda__1___closed__5 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__5();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__5);
l_Lean_Parser_Tactic_subst___elambda__1___closed__6 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__6();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__6);
l_Lean_Parser_Tactic_subst___elambda__1___closed__7 = _init_l_Lean_Parser_Tactic_subst___elambda__1___closed__7();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___elambda__1___closed__7);
l_Lean_Parser_Tactic_subst___closed__1 = _init_l_Lean_Parser_Tactic_subst___closed__1();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__1);
l_Lean_Parser_Tactic_subst___closed__2 = _init_l_Lean_Parser_Tactic_subst___closed__2();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__2);
l_Lean_Parser_Tactic_subst___closed__3 = _init_l_Lean_Parser_Tactic_subst___closed__3();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__3);
l_Lean_Parser_Tactic_subst___closed__4 = _init_l_Lean_Parser_Tactic_subst___closed__4();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__4);
l_Lean_Parser_Tactic_subst___closed__5 = _init_l_Lean_Parser_Tactic_subst___closed__5();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__5);
l_Lean_Parser_Tactic_subst___closed__6 = _init_l_Lean_Parser_Tactic_subst___closed__6();
lean_mark_persistent(l_Lean_Parser_Tactic_subst___closed__6);
l_Lean_Parser_Tactic_subst = _init_l_Lean_Parser_Tactic_subst();
lean_mark_persistent(l_Lean_Parser_Tactic_subst);
res = l___regBuiltinParser_Lean_Parser_Tactic_subst(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Parser_Tactic_assumption___elambda__1___closed__1 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__1();
lean_mark_persistent(l_Lean_Parser_Tactic_assumption___elambda__1___closed__1);
l_Lean_Parser_Tactic_assumption___elambda__1___closed__2 = _init_l_Lean_Parser_Tactic_assumption___elambda__1___closed__2();

File diff suppressed because it is too large Load diff