chore: update stage0

This commit is contained in:
Leonardo de Moura 2020-08-13 16:56:01 -07:00
parent 94689ca91f
commit 17770ee479
37 changed files with 10236 additions and 5945 deletions

View file

@ -717,7 +717,7 @@ export Array (mkArray)
| [] => 0
| _::as => as.redLength + 1
@[inline] def List.toArray {α : Type u} (as : List α) : Array α :=
@[inline, matchPattern] def List.toArray {α : Type u} (as : List α) : Array α :=
as.toArrayAux (Array.mkEmpty as.redLength)
namespace Array

View file

@ -98,8 +98,8 @@ alts.map mkMatchAltView
def mkInaccessible (e : Expr) : Expr :=
mkAnnotation `_inaccessible e
def isInaccessible? (e : Expr) : Option Expr :=
isAnnotation? `_inaccessible e
def inaccessible? (e : Expr) : Option Expr :=
annotation? `_inaccessible e
inductive PatternVar
| localVar (userName : Name)
@ -369,7 +369,7 @@ private partial def withPatternVarsAux {α} (pVars : Array PatternVar) (k : Arra
private def withPatternVars {α} (pVars : Array PatternVar) (k : Array PatternVarDecl → TermElabM α) : TermElabM α :=
withPatternVarsAux pVars k 0 #[]
private partial def elabPatternsAux (patternStxs : Array Syntax) : Nat → Expr → Array Expr → TermElabM (Array Expr)
private partial def elabPatternsAux (patternStxs : Array Syntax) : Nat → Expr → Array Expr → TermElabM (Array Expr × Expr)
| i, matchType, patterns =>
if h : i < patternStxs.size then do
matchType ← whnf matchType;
@ -381,7 +381,7 @@ private partial def elabPatternsAux (patternStxs : Array Syntax) : Nat → Expr
elabPatternsAux (i+1) (b.instantiate1 pattern) (patterns.push pattern)
| _ => throwError "unexpected match type"
else
pure patterns
pure (patterns, matchType)
def finalizePatternDecls (patternVarDecls : Array PatternVarDecl) : TermElabM (Array LocalDecl) :=
patternVarDecls.foldlM
@ -400,21 +400,130 @@ patternVarDecls.foldlM
pure $ decls.push decl))
#[]
private def elabPatterns (patternVarDecls : Array PatternVarDecl) (patternStxs : Array Syntax) (matchType : Expr) : TermElabM (Array Expr) := do
patterns ← withSynthesize $ elabPatternsAux patternStxs 0 matchType #[];
patterns ← patterns.mapM instantiateMVars;
decls ← finalizePatternDecls patternVarDecls;
trace `Elab.match fun _ => MessageData.ofArray $ decls.map fun (d : LocalDecl) => (d.userName ++ " : " ++ d.type : MessageData);
trace `Elab.match fun _ => "patterns: " ++ patterns;
pure patterns
namespace ToDepElimPattern
def elabMatchAltView (alt : MatchAltView) (matchType : Expr) : TermElabM (Meta.DepElim.AltLHS × Expr) := do
structure State :=
(found : NameSet := {})
abbrev M := StateT State TermElabM
private def alreadyVisited (fvarId : FVarId) : M Bool := do
s ← get;
pure $ s.found.contains fvarId
private def markAsVisited (fvarId : FVarId) : M Unit :=
modify $ fun s => { s with found := s.found.insert fvarId }
private def throwInvalidPattern {α} (e : Expr) : M α :=
liftM $ throwError ("invalid pattern " ++ indentExpr e)
private def getFieldsBinderInfoAux (ctorVal : ConstructorVal) : Nat → Expr → Array BinderInfo → Array BinderInfo
| i, Expr.forallE _ d b c, bis =>
if i < ctorVal.nparams then
getFieldsBinderInfoAux (i+1) b bis
else
getFieldsBinderInfoAux (i+1) b (bis.push c.binderInfo)
| _, _, bis => bis
private def getFieldsBinderInfo (ctorVal : ConstructorVal) : Array BinderInfo :=
getFieldsBinderInfoAux ctorVal 0 ctorVal.type #[]
partial def main (localDecls : Array LocalDecl) : Expr → M Meta.DepElim.Pattern
| e =>
let isLocalDecl (fvarId : FVarId) : Bool :=
localDecls.any fun d => d.fvarId == fvarId;
let mkPatternVar (fvarId : FVarId) (e : Expr) : M Meta.DepElim.Pattern := do {
condM (alreadyVisited fvarId)
(pure $ Meta.DepElim.Pattern.inaccessible e)
(do markAsVisited fvarId; pure $ Meta.DepElim.Pattern.var e.fvarId!)
};
let mkInaccessible (e : Expr) : M Meta.DepElim.Pattern := do {
match e with
| Expr.fvar fvarId _ =>
if isLocalDecl fvarId then
mkPatternVar fvarId e
else
pure $ Meta.DepElim.Pattern.inaccessible e
| _ =>
pure $ Meta.DepElim.Pattern.inaccessible e
};
match inaccessible? e with
| some t => mkInaccessible t
| none =>
match e.arrayLit? with
| some (α, lits) => do
ps ← lits.mapM main;
pure $ Meta.DepElim.Pattern.arrayLit α ps
| none =>
if e.isAppOfArity `namedPattern 3 then do
p ← main $ e.getArg! 2;
match e.getArg! 1 with
| Expr.fvar fvarId _ => pure $ Meta.DepElim.Pattern.as fvarId p
| _ => liftM $ throwError "unexpected occurrence of auxiliary declaration 'namedPattern'"
else if e.isNatLit || e.isStringLit || e.isCharLit then
pure $ Meta.DepElim.Pattern.val e
else if e.isFVar then do
let fvarId := e.fvarId!;
unless (isLocalDecl fvarId) $ throwInvalidPattern e;
mkPatternVar fvarId e
else do
newE ← liftM $ whnf e;
if newE != e then
main newE
else match e.getAppFn with
| Expr.const declName us _ => do
env ← liftM getEnv;
match env.find? declName with
| ConstantInfo.ctorInfo v => do
let args := e.getAppArgs;
unless (args.size == v.nparams + v.nfields) $ throwInvalidPattern e;
let params := args.extract 0 v.nparams;
let fields := args.extract v.nparams args.size;
let binderInfos := getFieldsBinderInfo v;
fields ← fields.mapIdxM fun i field => do {
let binderInfo := binderInfos.get! i;
if binderInfo.isExplicit then
main field
else
mkInaccessible field
};
pure $ Meta.DepElim.Pattern.ctor declName us params.toList fields.toList
| _ => throwInvalidPattern e
| _ => throwInvalidPattern e
end ToDepElimPattern
def toDepElimPattern (localDecls : Array LocalDecl) (e : Expr) : TermElabM Meta.DepElim.Pattern :=
(ToDepElimPattern.main localDecls e).run' {}
private def elabPatterns (patternVarDecls : Array PatternVarDecl) (patternStxs : Array Syntax) (matchType : Expr) : TermElabM (Meta.DepElim.AltLHS × Expr) := do
(patterns, matchType) ← withSynthesize $ elabPatternsAux patternStxs 0 matchType #[];
localDecls ← finalizePatternDecls patternVarDecls;
patterns ← patterns.mapM instantiateMVars;
patterns.forM $ fun pattern => when pattern.hasExprMVar $ throwError ("pattern contains metavariables " ++ indentExpr pattern);
patterns ← patterns.mapM $ toDepElimPattern localDecls;
trace `Elab.match fun _ => "patterns: " ++ MessageData.ofArray (patterns.map fun (p : Meta.DepElim.Pattern) => p.toMessageData);
pure ({ localDecls := localDecls.toList, patterns := patterns.toList }, matchType)
def elabMatchAltView (alt : MatchAltView) (matchType : Expr) : TermElabM (Meta.DepElim.AltLHS × Expr) :=
withRef alt.ref do
(patternVars, alt) ← collectPatternVars alt;
withRef alt.ref $ trace `Elab.match fun _ => "patternVars: " ++ toString patternVars;
trace `Elab.match fun _ => "patternVars: " ++ toString patternVars;
withPatternVars patternVars fun patternVarDecls => do
ps ← withRef alt.ref $ elabPatterns patternVarDecls alt.patterns matchType;
-- TODO
pure (⟨[], []⟩, arbitrary _)
(altLHS, matchType) ← elabPatterns patternVarDecls alt.patterns matchType;
rhs ← elabTerm alt.rhs matchType;
let xs := altLHS.localDecls.toArray.map LocalDecl.toExpr;
rhs ← if xs.isEmpty then pure $ mkThunk rhs else mkLambda xs rhs;
trace `Elab.match fun _ => "rhs: " ++ rhs;
pure (altLHS, rhs)
def mkMotiveType (matchType : Expr) (expectedType : Expr) : TermElabM Expr := do
liftMetaM $ Meta.forallTelescopeReducing matchType fun xs matchType => do
u ← Meta.getLevel matchType;
Meta.mkForall xs (mkSort u)
def mkElim (elimName : Name) (motiveType : Expr) (lhss : List Meta.DepElim.AltLHS) : TermElabM Meta.DepElim.ElimResult :=
liftMetaM $ Meta.DepElim.mkElim elimName motiveType lhss
/-
```
@ -432,7 +541,18 @@ matchType ← elabMatchOptType stx discrStxs.size;
matchAlts ← expandMacrosInPatterns $ getMatchAlts stx;
discrs ← elabDiscrs discrStxs matchType expectedType;
alts ← matchAlts.mapM $ fun alt => elabMatchAltView alt matchType;
throwError ("WIP type: " ++ matchType ++ "\n" ++ discrs ++ "\n" ++ toString (matchAlts.map fun alt => toString alt.patterns))
let rhss := alts.map Prod.snd;
let altLHSS := alts.map Prod.fst;
motiveType ← mkMotiveType matchType expectedType;
motive ← liftMetaM $ Meta.forallTelescopeReducing matchType fun xs matchType => Meta.mkLambda xs matchType;
elimName ← mkAuxName `elim;
elimResult ← mkElim elimName motiveType altLHSS.toList;
-- TODO: report `eliminator errors`.
let r := mkApp elimResult.elim motive;
let r := mkAppN r discrs;
let r := mkAppN r rhss;
trace `Elab.match fun _ => "result: " ++ r;
pure r
/- Auxiliary method for `expandMatchDiscr?` -/
private partial def mkMatchType (discrs : Array Syntax) : Nat → MacroM Syntax

View file

@ -486,8 +486,8 @@ pure r
def markDefaultMissing (e : Expr) : Expr :=
mkAnnotation `structInstDefault e
def isDefaultMissing? (e : Expr) : Option Expr :=
isAnnotation? `structInstDefault e
def defaultMissing? (e : Expr) : Option Expr :=
annotation? `structInstDefault e
def throwFailedToElabField {α} (fieldName : Name) (structName : Name) (msgData : MessageData) : TermElabM α :=
throwError ("failed to elaborate field '" ++ fieldName ++ "' of '" ++ structName ++ ", " ++ msgData)
@ -581,7 +581,7 @@ partial def findDefaultMissing? (mctx : MetavarContext) : Struct → Option (Fie
| FieldVal.nested struct => findDefaultMissing? struct
| _ => match field.expr? with
| none => unreachable!
| some expr => match isDefaultMissing? expr with
| some expr => match defaultMissing? expr with
| some (Expr.mvar mvarId _) => if mctx.isExprAssigned mvarId then none else some field
| _ => none
@ -669,7 +669,7 @@ partial def reduce (structNames : Array Name) : Expr → MetaM Expr
pure (mkAppN f' args)
| e@(Expr.mdata _ b _) => do
b ← reduce b;
if (isDefaultMissing? e).isSome && !b.isMVar then
if (defaultMissing? e).isSome && !b.isMVar then
pure b
else
pure $ e.updateMData! b
@ -696,7 +696,7 @@ partial def tryToSynthesizeDefaultAux (structs : Array Struct) (allStructNames :
| none => do setMCtx mctx; tryToSynthesizeDefaultAux (i+1) (dist+1)
| some val => do
val ← liftMetaM $ reduce allStructNames val;
match val.find? $ fun e => (isDefaultMissing? e).isSome with
match val.find? $ fun e => (defaultMissing? e).isSome with
| some _ => do setMCtx mctx; tryToSynthesizeDefaultAux (i+1) (dist+1)
| none => do
mvarDecl ← getMVarDecl mvarId;
@ -718,7 +718,7 @@ partial def step : Struct → M Unit
| FieldVal.nested struct => step struct
| _ => match field.expr? with
| none => unreachable!
| some expr => match isDefaultMissing? expr with
| some expr => match defaultMissing? expr with
| some (Expr.mvar mvarId _) =>
unlessM (liftM $ isExprMVarAssigned mvarId) $ do
ctx ← read;

View file

@ -202,6 +202,21 @@ instance : Inhabited Expr :=
| proj _ _ _ d => d
| localE _ _ _ d => d
def ctorName : Expr → String
| bvar _ _ => "bvar"
| fvar _ _ => "fvar"
| mvar _ _ => "mvar"
| sort _ _ => "sort"
| const _ _ _ => "const"
| app _ _ _ => "app"
| lam _ _ _ _ => "lam"
| forallE _ _ _ _ => "forallE"
| letE _ _ _ _ _ => "letE"
| lit _ _ => "lit"
| mdata _ _ _ => "mdata"
| proj _ _ _ _ => "proj"
| localE _ _ _ _ => "localE"
def hash (e : Expr) : USize :=
e.data.hash
@ -306,6 +321,14 @@ Expr.forallE x t b $ mkDataForBinder (mixHash 37 $ mixHash (hash t) (hash b))
(t.hasLevelParam || b.hasLevelParam)
bi
/- Return `Unit -> type` -/
def mkThunkType (type : Expr) : Expr :=
mkForall Name.anonymous BinderInfo.default (Lean.mkConst `Unit) type
/- Return `fun (_ : Unit), e` -/
def mkThunk (type : Expr) : Expr :=
mkLambda `_ BinderInfo.default (Lean.mkConst `Unit) type
def mkLet (x : Name) (t : Expr) (v : Expr) (b : Expr) (nonDep : Bool := false) : Expr :=
let x := x.eraseMacroScopes;
Expr.letE x t v b $ mkDataForLet (mixHash 41 $ mixHash (hash t) $ mixHash (hash v) (hash b))
@ -427,14 +450,6 @@ def isLit : Expr → Bool
| lit _ _ => true
| _ => false
def isNatLit : Expr → Bool
| lit (Literal.natVal _) _ => true
| _ => false
def isStringLit : Expr → Bool
| lit (Literal.strVal _) _ => true
| _ => false
def getAppFn : Expr → Expr
| app f a _ => getAppFn f
| e => e
@ -512,6 +527,21 @@ def appArg! : Expr → Expr
| app _ a _ => a
| _ => panic! "application expected"
def isNatLit : Expr → Bool
| lit (Literal.natVal _) _ => true
| _ => false
def natLit? : Expr → Option Nat
| lit (Literal.natVal v) _ => v
| _ => none
def isStringLit : Expr → Bool
| lit (Literal.strVal _) _ => true
| _ => false
def isCharLit (e : Expr) : Bool :=
e.isAppOfArity `Char.ofNat 1 && e.appArg!.isNatLit
def constName! : Expr → Name
| const n _ _ => n
| _ => panic! "constant expected"
@ -960,9 +990,9 @@ end Expr
def mkAnnotation (kind : Name) (e : Expr) : Expr :=
mkMData (KVMap.empty.insert kind (DataValue.ofBool true)) e
def isAnnotation? (kind : Name) (e : Expr) : Option Expr :=
def annotation? (kind : Name) (e : Expr) : Option Expr :=
match e with
| Expr.mdata d e _ => if d.size == 1 && d.getBool kind false then some e else none
| Expr.mdata d b _ => if d.size == 1 && d.getBool kind false then some b else none
| _ => none
end Lean

View file

@ -18,105 +18,97 @@ namespace DepElim
abbrev VarId := Name
inductive Pattern (internal : Bool := false) : Type
| inaccessible (ref : Syntax) (e : Expr) : Pattern
| var (ref : Syntax) (varId : VarId) : Pattern
| ctor (ref : Syntax) (ctorName : Name) (us : List Level) (params : List Expr) (fields : List Pattern) : Pattern
| val (ref : Syntax) (e : Expr) : Pattern
| arrayLit (ref : Syntax) (type : Expr) (xs : List Pattern) : Pattern
| as (ref : Syntax) (varId : VarId) (p : Pattern) : Pattern
| inaccessible (e : Expr) : Pattern
| var (varId : VarId) : Pattern
| ctor (ctorName : Name) (us : List Level) (params : List Expr) (fields : List Pattern) : Pattern
| val (e : Expr) : Pattern
| arrayLit (type : Expr) (xs : List Pattern) : Pattern
| as (varId : VarId) (p : Pattern) : Pattern
abbrev IPattern := Pattern true
namespace Pattern
instance {b} : Inhabited (Pattern b) := ⟨Pattern.inaccessible Syntax.missing (arbitrary _)⟩
def ref {b : Bool} : Pattern b → Syntax
| inaccessible r _ => r
| var r _ => r
| ctor r _ _ _ _ => r
| val r _ => r
| arrayLit r _ _ => r
| as r _ _ => r
instance {b} : Inhabited (Pattern b) := ⟨Pattern.inaccessible (arbitrary _)⟩
partial def toMessageData {b : Bool} : Pattern b → MessageData
| inaccessible _ e => ".(" ++ e ++ ")"
| var _ varId => if b then mkMVar varId else mkFVar varId
| ctor _ ctorName _ _ [] => ctorName
| ctor _ ctorName _ _ pats => "(" ++ ctorName ++ pats.foldl (fun (msg : MessageData) pat => msg ++ " " ++ toMessageData pat) Format.nil ++ ")"
| val _ e => "val!(" ++ e ++ ")"
| arrayLit _ _ pats => "#[" ++ MessageData.joinSep (pats.map toMessageData) ", " ++ "]"
| as _ varId p => (if b then mkMVar varId else mkFVar varId) ++ "@" ++toMessageData p
| inaccessible e => ".(" ++ e ++ ")"
| var varId => if b then mkMVar varId else mkFVar varId
| ctor ctorName _ _ [] => ctorName
| ctor ctorName _ _ pats => "(" ++ ctorName ++ pats.foldl (fun (msg : MessageData) pat => msg ++ " " ++ toMessageData pat) Format.nil ++ ")"
| val e => "val!(" ++ e ++ ")"
| arrayLit _ pats => "#[" ++ MessageData.joinSep (pats.map toMessageData) ", " ++ "]"
| as varId p => (if b then mkMVar varId else mkFVar varId) ++ "@" ++toMessageData p
partial def toExpr {b} : Pattern b → MetaM Expr
| inaccessible _ e => pure e
| var _ varId => if b then pure (mkMVar varId) else pure (mkFVar varId)
| val _ e => pure e
| as _ _ p => toExpr p
| arrayLit _ type xs => do
| inaccessible e => pure e
| var varId => if b then pure (mkMVar varId) else pure (mkFVar varId)
| val e => pure e
| as _ p => toExpr p
| arrayLit type xs => do
xs ← xs.mapM toExpr;
mkArrayLit type xs
| ctor _ ctorName us params fields => do
| ctor ctorName us params fields => do
fields ← fields.mapM toExpr;
pure $ mkAppN (mkConst ctorName us) (params ++ fields).toArray
/- Apply the free variable substitution `s` to the given (internal) pattern -/
partial def applyFVarSubst (s : FVarSubst) : Pattern true → IPattern
| inaccessible r e => inaccessible r $ s.apply e
| ctor r n us ps fs => ctor r n us (ps.map s.apply) $ fs.map applyFVarSubst
| val r e => val r $ s.apply e
| arrayLit r t xs => arrayLit r (s.apply t) $ xs.map applyFVarSubst
| var r id => var r id
| as r v p => as r v $ applyFVarSubst p
| inaccessible e => inaccessible $ s.apply e
| ctor n us ps fs => ctor n us (ps.map s.apply) $ fs.map applyFVarSubst
| val e => val $ s.apply e
| arrayLit t xs => arrayLit (s.apply t) $ xs.map applyFVarSubst
| var id => var id
| as v p => as v $ applyFVarSubst p
partial def instantiateMVars : IPattern → MetaM IPattern
| inaccessible r e => inaccessible r <$> Meta.instantiateMVars e
| ctor r n us ps fs => ctor r n us <$> ps.mapM Meta.instantiateMVars <*> fs.mapM instantiateMVars
| val r e => val r <$> Meta.instantiateMVars e
| arrayLit r t xs => arrayLit r <$> Meta.instantiateMVars t <*> xs.mapM instantiateMVars
| var ref mvarId => do
| inaccessible e => inaccessible <$> Meta.instantiateMVars e
| ctor n us ps fs => ctor n us <$> ps.mapM Meta.instantiateMVars <*> fs.mapM instantiateMVars
| val e => val <$> Meta.instantiateMVars e
| arrayLit t xs => arrayLit <$> Meta.instantiateMVars t <*> xs.mapM instantiateMVars
| var mvarId => do
mctx ← getMCtx;
match mctx.getExprAssignment? mvarId with
| some v => inaccessible ref <$> Meta.instantiateMVars v
| none => pure (var ref mvarId)
| as ref mvarId p => do
| some v => inaccessible <$> Meta.instantiateMVars v
| none => pure (var mvarId)
| as mvarId p => do
mctx ← getMCtx;
match mctx.getExprAssignment? mvarId with
| some v => instantiateMVars p
| none => as ref mvarId <$> instantiateMVars p
| none => as mvarId <$> instantiateMVars p
partial def applyMVarRenaming (m : MVarRenaming) : Pattern true → IPattern
| inaccessible r e => inaccessible r $ m.apply e
| ctor r n us ps fs => ctor r n us (ps.map m.apply) $ fs.map applyMVarRenaming
| val r e => val r $ m.apply e
| arrayLit r t xs => arrayLit r (m.apply t) $ xs.map applyMVarRenaming
| var ref mvarId =>
| inaccessible e => inaccessible $ m.apply e
| ctor n us ps fs => ctor n us (ps.map m.apply) $ fs.map applyMVarRenaming
| val e => val $ m.apply e
| arrayLit t xs => arrayLit (m.apply t) $ xs.map applyMVarRenaming
| var mvarId =>
match m.find? mvarId with
| some newMVarId => var ref newMVarId
| none => var ref mvarId
| as ref mvarId p =>
| some newMVarId => var newMVarId
| none => var mvarId
| as mvarId p =>
match m.find? mvarId with
| some newMVarId => as ref newMVarId $ applyMVarRenaming p
| none => as ref mvarId $ applyMVarRenaming p
| some newMVarId => as newMVarId $ applyMVarRenaming p
| none => as mvarId $ applyMVarRenaming p
partial def toIPattern (s : FVarSubst) : Pattern → IPattern
| inaccessible r e => inaccessible r $ s.apply e
| ctor r n us ps fs => ctor r n us (ps.map s.apply) $ fs.map toIPattern
| val r e => val r $ s.apply e
| arrayLit r t xs => arrayLit r (s.apply t) $ xs.map toIPattern
| var ref fvarId =>
| inaccessible e => inaccessible $ s.apply e
| ctor n us ps fs => ctor n us (ps.map s.apply) $ fs.map toIPattern
| val e => val $ s.apply e
| arrayLit t xs => arrayLit (s.apply t) $ xs.map toIPattern
| var fvarId =>
match s.get fvarId with
| Expr.mvar mvarId _ => Pattern.var ref mvarId
| Expr.mvar mvarId _ => Pattern.var mvarId
| _ => unreachable!
| as ref fvarId p =>
| as fvarId p =>
match s.get fvarId with
| Expr.mvar mvarId _ => Pattern.as ref mvarId $ toIPattern p
| Expr.mvar mvarId _ => Pattern.as mvarId $ toIPattern p
| _ => unreachable!
end Pattern
structure AltLHS :=
(fvarDecls : List LocalDecl) -- Free variables used in the patterns.
(localDecls : List LocalDecl) -- Free variables used in the patterns.
(patterns : List Pattern) -- We use `List Pattern` since we have nary match-expressions.
structure Alt :=
@ -289,29 +281,26 @@ private def localDeclsToMVarsAux : List LocalDecl → List MVarId → FVarSubst
let s := s.insert d.fvarId mvar;
localDeclsToMVarsAux ds (mvar.mvarId! :: mvars) s
private def localDeclsToMVars (fvarDecls : List LocalDecl) : MetaM (List MVarId × FVarSubst) :=
localDeclsToMVarsAux fvarDecls [] {}
private def mkThunk (type : Expr) : Expr :=
Lean.mkForall `u BinderInfo.default (Lean.mkConst `Unit) type
private def localDeclsToMVars (localDecls : List LocalDecl) : MetaM (List MVarId × FVarSubst) :=
localDeclsToMVarsAux localDecls [] {}
private partial def withAltsAux {α} (motive : Expr) : List AltLHS → List Alt → Array Expr → (List Alt → Array Expr → MetaM α) → MetaM α
| [], alts, minors, k => k alts.reverse minors
| lhs::lhss, alts, minors, k => do
let xs := lhs.fvarDecls.toArray.map LocalDecl.toExpr;
minorType ← withExistingLocalDecls lhs.fvarDecls do {
let xs := lhs.localDecls.toArray.map LocalDecl.toExpr;
minorType ← withExistingLocalDecls lhs.localDecls do {
args ← lhs.patterns.toArray.mapM Pattern.toExpr;
let minorType := mkAppN motive args;
mkForall xs minorType
};
let minorType := if minorType.isForall then minorType else mkThunk minorType;
let minorType := if minorType.isForall then minorType else mkThunkType minorType;
let idx := alts.length;
let minorName := (`h).appendIndexAfter (idx+1);
trace! `Meta.EqnCompiler.matchDebug ("minor premise " ++ minorName ++ " : " ++ minorType);
withLocalDecl minorName minorType BinderInfo.default fun minor => do
let rhs := if xs.isEmpty then mkApp minor (mkConst `Unit.unit) else mkAppN minor xs;
let minors := minors.push minor;
(mvars, s) ← localDeclsToMVars lhs.fvarDecls;
(mvars, s) ← localDeclsToMVars lhs.localDecls;
let patterns := lhs.patterns.map (fun p => p.toIPattern s);
let rhs := s.apply rhs;
let alts := { idx := idx, rhs := rhs, mvars := mvars, patterns := patterns : Alt } :: alts;
@ -340,21 +329,21 @@ match p.vars with
private def hasAsPattern (p : Problem) : Bool :=
p.alts.any fun alt => match alt.patterns with
| Pattern.as _ _ _ :: _ => true
| _ => false
| Pattern.as _ _ :: _ => true
| _ => false
/- Return true if the next pattern of each remaining alternative is an inaccessible term or a variable -/
private def isVariableTransition (p : Problem) : Bool :=
p.alts.all fun alt => match alt.patterns with
| Pattern.inaccessible _ _ :: _ => true
| Pattern.var _ _ :: _ => true
| _ => false
| Pattern.inaccessible _ :: _ => true
| Pattern.var _ :: _ => true
| _ => false
/- Return true if the next pattern of each remaining alternative is a constructor application -/
private def isConstructorTransition (p : Problem) : Bool :=
p.alts.all fun alt => match alt.patterns with
| Pattern.ctor _ _ _ _ _ :: _ => true
| _ => false
| Pattern.ctor _ _ _ _ :: _ => true
| _ => false
/- Return true if the next pattern of the remaining alternatives contain variables AND constructors. -/
private def isCompleteTransition (p : Problem) : Bool :=
@ -362,9 +351,9 @@ let (ok, hasVar, hasCtor) := p.alts.foldl
(fun (acc : Bool × Bool × Bool) (alt : Alt) =>
let (ok, hasVar, hasCtor) := acc;
match alt.patterns with
| Pattern.ctor _ _ _ _ _ :: _ => (ok, hasVar, true)
| Pattern.var _ _ :: _ => (ok, true, hasCtor)
| _ => (false, hasVar, hasCtor))
| Pattern.ctor _ _ _ _ :: _ => (ok, hasVar, true)
| Pattern.var _ :: _ => (ok, true, hasCtor)
| _ => (false, hasVar, hasCtor))
(true, false, false);
ok && hasVar && hasCtor
@ -374,9 +363,9 @@ let (ok, hasVar, hasVal) := p.alts.foldl
(fun (acc : Bool × Bool × Bool) (alt : Alt) =>
let (ok, hasVar, hasVal) := acc;
match alt.patterns with
| Pattern.val _ _ :: _ => (ok, hasVar, true)
| Pattern.var _ _ :: _ => (ok, true, hasVal)
| _ => (false, hasVar, hasVal))
| Pattern.val _ :: _ => (ok, hasVar, true)
| Pattern.var _ :: _ => (ok, true, hasVal)
| _ => (false, hasVar, hasVal))
(true, false, false);
ok && hasVar && hasVal
@ -386,9 +375,9 @@ let (ok, hasVar, hasArray) := p.alts.foldl
(fun (acc : Bool × Bool × Bool) (alt : Alt) =>
let (ok, hasVar, hasArray) := acc;
match alt.patterns with
| Pattern.arrayLit _ _ _ :: _ => (ok, hasVar, true)
| Pattern.var _ _ :: _ => (ok, true, hasArray)
| _ => (false, hasVar, hasArray))
| Pattern.arrayLit _ _ :: _ => (ok, hasVar, true)
| Pattern.var _ :: _ => (ok, true, hasArray)
| _ => (false, hasVar, hasArray))
(true, false, false);
ok && hasVar && hasArray
@ -418,7 +407,7 @@ match p.vars with
| [] => unreachable!
| x :: xs => do
alts ← p.alts.mapM fun alt => match alt.patterns with
| Pattern.as _ mvarId p :: ps => do
| Pattern.as mvarId p :: ps => do
assignExprMVar mvarId x;
rhs ← instantiateMVars alt.rhs;
let mvars := alt.mvars.erase mvarId;
@ -434,8 +423,8 @@ match p.vars with
| [] => unreachable!
| x :: xs => do
alts ← p.alts.mapM fun alt => match alt.patterns with
| Pattern.inaccessible _ _ :: ps => pure { alt with patterns := ps }
| Pattern.var _ mvarId :: ps => do
| Pattern.inaccessible _ :: ps => pure { alt with patterns := ps }
| Pattern.var mvarId :: ps => do
-- trace! `Meta.EqnCompiler.matchDebug (">> assign " ++ mkMVar mvarId ++ " := " ++ x);
assignExprMVar mvarId x;
rhs ← instantiateMVars alt.rhs;
@ -449,8 +438,8 @@ match p.vars with
private def isFirstPatternCtor (ctorName : Name) (alt : Alt) : Bool :=
match alt.patterns with
| Pattern.ctor _ n _ _ _ :: _ => n == ctorName
| _ => false
| Pattern.ctor n _ _ _ :: _ => n == ctorName
| _ => false
private def processConstructor (process : Problem → State → MetaM State) (p : Problem) (s : State) : MetaM State := do
trace! `Meta.EqnCompiler.match ("constructor step");
@ -471,8 +460,8 @@ match p.vars with
let examples := examples.map $ Example.applyFVarSubst subst;
let newAlts := p.alts.filter $ isFirstPatternCtor subgoal.ctorName;
let newAlts := newAlts.map fun alt => match alt.patterns with
| Pattern.ctor _ _ _ _ fields :: ps => { alt with patterns := fields ++ ps }
| _ => unreachable!;
| Pattern.ctor _ _ _ fields :: ps => { alt with patterns := fields ++ ps }
| _ => unreachable!;
newAlts ← newAlts.mapM fun alt => alt.applyFVarSubst subst;
newAlts ← newAlts.mapM fun alt => alt.copy;
process { mvarId := subgoal.mvarId, vars := newVars, alts := newAlts, examples := examples } s)
@ -481,17 +470,17 @@ match p.vars with
private def throwInductiveTypeExpected {α} (type : Expr) : MetaM α := do
throwOther ("failed to compile pattern matching, inductive type expected" ++ indentExpr type)
private partial def tryConstructorAux (alt : Alt) (ref : Syntax) (mvarId : MVarId) (ctorName : Name) (us : List Level) (params : Array Expr) (mvars : Array Expr)
private partial def tryConstructorAux (alt : Alt) (mvarId : MVarId) (ctorName : Name) (us : List Level) (params : Array Expr) (mvars : Array Expr)
: Nat → Array MVarId → Array IPattern → MetaM Alt
| i, newMVars, fields => do
if h : i < mvars.size then do
let mvar := mvars.get ⟨i, h⟩;
e ← instantiateMVars mvar;
match e with
| Expr.mvar mvarId _ => tryConstructorAux (i+1) (newMVars.push mvarId) (fields.push (Pattern.var ref mvarId))
| _ => tryConstructorAux (i+1) newMVars (fields.push (Pattern.inaccessible ref e))
| Expr.mvar mvarId _ => tryConstructorAux (i+1) (newMVars.push mvarId) (fields.push (Pattern.var mvarId))
| _ => tryConstructorAux (i+1) newMVars (fields.push (Pattern.inaccessible e))
else do
let p := Pattern.ctor ref ctorName us params.toList fields.toList;
let p := Pattern.ctor ctorName us params.toList fields.toList;
e ← p.toExpr;
assignExprMVar mvarId e;
ps ← alt.patterns.mapM Pattern.instantiateMVars;
@ -503,17 +492,17 @@ private partial def tryConstructorAux (alt : Alt) (ref : Syntax) (mvarId : MVarI
mvars ← mvars.filterM fun mvarId => not <$> isExprMVarAssigned mvarId;
pure { alt with rhs := rhs, mvars := mvars, patterns := ps }
private def tryConstructor? (alt : Alt) (ref : Syntax) (mvarId : MVarId) (ctorName : Name) (us : List Level) (params : Array Expr) (expectedType : Expr)
private def tryConstructor? (alt : Alt) (mvarId : MVarId) (ctorName : Name) (us : List Level) (params : Array Expr) (expectedType : Expr)
: MetaM (Option Alt) := do
let ctor := mkAppN (mkConst ctorName us) params;
ctorType ← inferType ctor;
(mvars, _, resultType) ← forallMetaTelescopeReducing ctorType;
trace! `Meta.EqnCompiler.matchDebug ("ctorName: " ++ ctorName ++ ", resultType: " ++ resultType ++ ", expectedType: " ++ expectedType);
condM (isDefEq resultType expectedType)
(Option.some <$> tryConstructorAux alt ref mvarId ctorName us params mvars 0 #[] #[])
(Option.some <$> tryConstructorAux alt mvarId ctorName us params mvars 0 #[] #[])
(pure none)
private def expandAlt (alt : Alt) (ref : Syntax) (mvarId : MVarId) : MetaM (List Alt) := do
private def expandAlt (alt : Alt) (mvarId : MVarId) : MetaM (List Alt) := do
env ← getEnv;
mvarDecl ← getMVarDecl mvarId;
let expectedType := mvarDecl.type;
@ -531,7 +520,7 @@ matchConst env expectedType.getAppFn (fun _ => throwInductiveTypeExpected expect
let I := expectedType.getAppFn;
let Iargs := expectedType.getAppArgs;
let params := Iargs.extract 0 val.nparams;
alt? ← tryConstructor? alt ref mvarId ctor us params expectedType;
alt? ← tryConstructor? alt mvarId ctor us params expectedType;
match alt? with
| none => pure result
| some alt => pure (alt :: result))
@ -545,10 +534,10 @@ env ← getEnv;
newAlts ← p.alts.foldlM
(fun (newAlts : List Alt) alt =>
match alt.patterns with
| Pattern.ctor _ _ _ _ _ :: ps => pure (alt :: newAlts)
| p@(Pattern.var ref mvarId) :: ps => do
| Pattern.ctor _ _ _ _ :: ps => pure (alt :: newAlts)
| p@(Pattern.var mvarId) :: ps => do
let alt := { alt with patterns := ps };
alts ← expandAlt alt ref mvarId;
alts ← expandAlt alt mvarId;
pure (alts ++ newAlts)
| _ => unreachable!)
[];
@ -558,14 +547,14 @@ private def collectValues (p : Problem) : Array Expr :=
p.alts.foldl
(fun (values : Array Expr) alt =>
match alt.patterns with
| Pattern.val _ v :: _ => if values.contains v then values else values.push v
| _ => values)
| Pattern.val v :: _ => if values.contains v then values else values.push v
| _ => values)
#[]
private def isFirstPatternVar (alt : Alt) : Bool :=
match alt.patterns with
| Pattern.var _ _ :: _ => true
| _ => false
| Pattern.var _ :: _ => true
| _ => false
private def processValue (process : Problem → State → MetaM State) (p : Problem) (s : State) : MetaM State := do
trace! `Meta.EqnCompiler.match ("value step");
@ -584,14 +573,14 @@ match p.vars with
let examples := p.examples.map $ Example.replaceFVarId x.fvarId! (Example.val value);
let examples := examples.map $ Example.applyFVarSubst subst;
let newAlts := p.alts.filter fun alt => match alt.patterns with
| Pattern.val _ v :: _ => v == value
| Pattern.var _ _ :: _ => true
| Pattern.val v :: _ => v == value
| Pattern.var _ :: _ => true
| _ => false;
newAlts ← newAlts.mapM fun alt => alt.applyFVarSubst subst;
newAlts ← newAlts.mapM fun alt => alt.copy;
newAlts ← newAlts.mapM fun alt => match alt.patterns with
| Pattern.val _ _ :: ps => pure { alt with patterns := ps }
| Pattern.var _ mvarId :: ps => do
| Pattern.val _ :: ps => pure { alt with patterns := ps }
| Pattern.var mvarId :: ps => do
assignExprMVar mvarId value;
ps ← ps.mapM Pattern.instantiateMVars;
rhs ← instantiateMVars alt.rhs;
@ -611,8 +600,8 @@ private def collectArraySizes (p : Problem) : Array Nat :=
p.alts.foldl
(fun (sizes : Array Nat) alt =>
match alt.patterns with
| Pattern.arrayLit _ _ ps :: _ => let sz := ps.length; if sizes.contains sz then sizes else sizes.push sz
| _ => sizes)
| Pattern.arrayLit _ ps :: _ => let sz := ps.length; if sizes.contains sz then sizes else sizes.push sz
| _ => sizes)
#[]
private def processArrayLit (process : Problem → State → MetaM State) (p : Problem) (s : State) : MetaM State := do
@ -635,14 +624,14 @@ match p.vars with
let examples := p.examples.map $ Example.replaceFVarId x.fvarId! subex;
let examples := examples.map $ Example.applyFVarSubst subst;
let newAlts := p.alts.filter fun alt => match alt.patterns with
| Pattern.arrayLit _ _ ps :: _ => ps.length == size
| Pattern.var _ _ :: _ => true
| _ => false;
| Pattern.arrayLit _ ps :: _ => ps.length == size
| Pattern.var _ :: _ => true
| _ => false;
newAlts ← newAlts.mapM fun alt => alt.applyFVarSubst subst;
newAlts ← newAlts.mapM fun alt => alt.copy;
newAlts ← newAlts.mapM fun alt => match alt.patterns with
| Pattern.arrayLit _ _ pats :: ps => pure { alt with patterns := pats ++ ps }
| Pattern.var ref mvarId :: ps => do
| Pattern.arrayLit _ pats :: ps => pure { alt with patterns := pats ++ ps }
| Pattern.var mvarId :: ps => do
α ← getArrayArgType x;
newMVars ← size.foldM
(fun _ (newMVars : List Expr) => do
@ -655,7 +644,7 @@ match p.vars with
rhs ← instantiateMVars alt.rhs;
let mvars := alt.mvars.erase mvarId;
let mvars := newMVars.map Expr.mvarId! ++ mvars;
let ps := newMVars.map (fun mvar => Pattern.var ref mvar.mvarId!) ++ ps;
let ps := newMVars.map (fun mvar => Pattern.var mvar.mvarId!) ++ ps;
pure { alt with rhs := rhs, mvars := mvars, patterns := ps }
| _ => unreachable!;
process { mvarId := subgoal.mvarId, vars := newVars, alts := newAlts, examples := examples } s
@ -690,18 +679,6 @@ private partial def process : Problem → State → MetaM State
-- TODO: remaining cases
throwOther ("not implement yet " ++ msg)
def getUnusedLevelParam (majors : List Expr) (lhss : List AltLHS) : MetaM Level := do
let s : CollectLevelParams.State := {};
s ← majors.foldlM
(fun s major => do
major ← instantiateMVars major;
majorType ← inferType major;
majorType ← instantiateMVars majorType;
let s := collectLevelParams s major;
pure $ collectLevelParams s majorType)
s;
pure s.getUnusedLevelParam
def mkElim (elimName : Name) (motiveType : Expr) (lhss : List AltLHS) : MetaM ElimResult :=
withLocalDecl `motive motiveType BinderInfo.default fun motive => do
forallTelescopeReducing motiveType fun majors _ => do
@ -724,8 +701,21 @@ withAlts motive lhss fun alts minors => do
[];
pure { elim := elim, counterExamples := s.counterExamples, unusedAltIdxs := unusedAltIdxs.reverse }
/- Helper methods for testins mkElim -/
private def getUnusedLevelParam (majors : List Expr) (lhss : List AltLHS) : MetaM Level := do
let s : CollectLevelParams.State := {};
s ← majors.foldlM
(fun s major => do
major ← instantiateMVars major;
majorType ← inferType major;
majorType ← instantiateMVars majorType;
let s := collectLevelParams s major;
pure $ collectLevelParams s majorType)
s;
pure s.getUnusedLevelParam
/- Return `Prop` if `inProf == true` and `Sort u` otherwise, where `u` is a fresh universe level parameter. -/
private def mkElimSort (majors : List Expr) (lhss : List AltLHS) (inProp : Bool) : MetaM Expr :=
if inProp then

View file

@ -61,4 +61,7 @@ end CollectLevelParams
def collectLevelParams (s : CollectLevelParams.State) (e : Expr) : CollectLevelParams.State :=
CollectLevelParams.main e s
def CollectLevelParams.State.collect (s : CollectLevelParams.State) (e : Expr) : CollectLevelParams.State :=
collectLevelParams s e
end Lean

View file

@ -45,19 +45,19 @@ p.app4? `HEq
| Expr.forallE _ α β _ => if β.hasLooseBVars then none else some (α, β)
| _ => none
partial def listLitAux : Expr → List Expr → Option (List Expr)
partial def listLitAux : Expr → List Expr → Option (Expr × List Expr)
| e, acc =>
if e.isAppOfArity `List.nil 1 then
some acc.reverse
some (e.appArg!, acc.reverse)
else if e.isAppOfArity `List.cons 3 then
listLitAux e.appArg! (e.appFn!.appArg! :: acc)
else
none
def listLit? (e : Expr) : Option (List Expr) :=
def listLit? (e : Expr) : Option (Expr × List Expr) :=
listLitAux e []
def arrayLit? (e : Expr) : Option (List Expr) :=
def arrayLit? (e : Expr) : Option (Expr × List Expr) :=
match e.app2? `List.toArray with
| some (_, e) => e.listLit?
| none => none

View file

@ -63,7 +63,6 @@ lean_object* l_List_append___rarg(lean_object*, lean_object*);
lean_object* l_Lean_Compiler_boolFoldFns___closed__5;
lean_object* l_Lean_Compiler_foldUIntSub(uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Compiler_foldToNat___rarg(lean_object*);
lean_object* l_Lean_Compiler_unFoldFns___closed__12;
lean_object* l_Lean_Compiler_natFoldFns___closed__19;
lean_object* l_Nat_decLt___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Compiler_foldNatDecLe___closed__2;
@ -90,7 +89,6 @@ lean_object* l_Lean_Compiler_foldNatMul___boxed(lean_object*);
extern lean_object* l_uint64Sz___closed__1;
lean_object* l_Lean_Compiler_binFoldFns___closed__2;
lean_object* l_Lean_Compiler_preUIntBinFoldFns___closed__22;
lean_object* l_Lean_Compiler_unFoldFns___closed__11;
lean_object* l_Lean_Compiler_uintFoldToNatFns;
lean_object* l_Lean_Compiler_foldNatDecLe___closed__1;
uint32_t lean_uint32_of_nat(lean_object*);
@ -161,7 +159,6 @@ lean_object* l_Lean_Compiler_numScalarTypes___closed__15;
lean_object* l_Lean_Compiler_numScalarTypes___closed__14;
lean_object* l_Lean_Compiler_preUIntBinFoldFns___closed__12;
extern lean_object* l_Nat_HasAdd___closed__1;
lean_object* l_Lean_Compiler_numScalarTypes___closed__28;
lean_object* l_List_foldl___main___at_Lean_Compiler_uintBinFoldFns___spec__2___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Compiler_boolFoldFns___closed__8;
lean_object* l_Lean_Compiler_foldUIntMod___lambda__1(lean_object*, uint8_t, lean_object*, lean_object*);
@ -188,6 +185,7 @@ lean_object* l_Lean_Compiler_mkLcProof(lean_object*);
lean_object* l_Lean_Compiler_mkNatLt___closed__10;
lean_object* l_Lean_Compiler_numScalarTypes___closed__9;
lean_object* l_Lean_Compiler_mkUIntTypeName(lean_object*);
extern lean_object* l_Lean_Expr_isCharLit___closed__3;
lean_object* l_Lean_Compiler_unFoldFns___closed__2;
lean_object* l_Lean_Compiler_boolFoldFns___closed__2;
lean_object* l_Lean_Compiler_boolFoldFns___closed__4;
@ -315,13 +313,13 @@ lean_object* l_Lean_Compiler_numScalarTypes___closed__11;
lean_object* l_Lean_Compiler_mkNatLt___closed__8;
extern lean_object* l_Lean_levelOne;
lean_object* l_Lean_Compiler_foldUIntMul(uint8_t, lean_object*, lean_object*);
extern lean_object* l_Lean_Expr_isCharLit___closed__4;
lean_object* l_Lean_Compiler_foldNatDecEq___closed__2;
lean_object* l_Lean_Compiler_preUIntBinFoldFns___closed__6;
lean_object* lean_get_num_lit(lean_object*);
lean_object* l_Lean_Compiler_foldNatDecLt___closed__1;
lean_object* l_Lean_mkConst(lean_object*, lean_object*);
lean_object* l_Lean_Compiler_boolFoldFns;
lean_object* l_Lean_Compiler_unFoldFns___closed__10;
lean_object* l_Lean_Compiler_getBoolLit___closed__1;
lean_object* l_Lean_Compiler_findUnFoldFn___boxed(lean_object*);
lean_object* l_Lean_Compiler_preUIntBinFoldFns___closed__10;
@ -375,22 +373,14 @@ return x_2;
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__2() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("ofNat");
return x_1;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__1;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__4() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__3() {
_start:
{
lean_object* x_1;
@ -398,24 +388,24 @@ x_1 = lean_mk_string("toNat");
return x_1;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__5() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__1;
x_2 = l_Lean_Compiler_numScalarTypes___closed__4;
x_2 = l_Lean_Compiler_numScalarTypes___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__6() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_1 = lean_unsigned_to_nat(8u);
x_2 = l_Lean_Compiler_numScalarTypes___closed__1;
x_3 = l_Lean_Compiler_numScalarTypes___closed__3;
x_4 = l_Lean_Compiler_numScalarTypes___closed__5;
x_3 = l_Lean_Compiler_numScalarTypes___closed__2;
x_4 = l_Lean_Compiler_numScalarTypes___closed__4;
x_5 = lean_unsigned_to_nat(256u);
x_6 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_6, 0, x_1);
@ -426,7 +416,7 @@ lean_ctor_set(x_6, 4, x_5);
return x_6;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__7() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2;
@ -435,12 +425,22 @@ x_2 = l_Lean_Compiler_mkUIntTypeName(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__6;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__7;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_1 = l_Lean_Compiler_numScalarTypes___closed__6;
x_2 = l_Lean_Compiler_numScalarTypes___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -448,21 +448,11 @@ return x_3;
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__7;
x_2 = l_Lean_Compiler_numScalarTypes___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_1 = lean_unsigned_to_nat(16u);
x_2 = l_Lean_Compiler_numScalarTypes___closed__7;
x_3 = l_Lean_Compiler_numScalarTypes___closed__8;
x_4 = l_Lean_Compiler_numScalarTypes___closed__9;
x_2 = l_Lean_Compiler_numScalarTypes___closed__6;
x_3 = l_Lean_Compiler_numScalarTypes___closed__7;
x_4 = l_Lean_Compiler_numScalarTypes___closed__8;
x_5 = lean_unsigned_to_nat(65536u);
x_6 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_6, 0, x_1);
@ -473,7 +463,7 @@ lean_ctor_set(x_6, 4, x_5);
return x_6;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__11() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2;
@ -482,12 +472,22 @@ x_2 = l_Lean_Compiler_mkUIntTypeName(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__11() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__10;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__12() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__11;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_1 = l_Lean_Compiler_numScalarTypes___closed__10;
x_2 = l_Lean_Compiler_numScalarTypes___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -495,21 +495,11 @@ return x_3;
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__13() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__11;
x_2 = l_Lean_Compiler_numScalarTypes___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__14() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_1 = lean_unsigned_to_nat(32u);
x_2 = l_Lean_Compiler_numScalarTypes___closed__11;
x_3 = l_Lean_Compiler_numScalarTypes___closed__12;
x_4 = l_Lean_Compiler_numScalarTypes___closed__13;
x_2 = l_Lean_Compiler_numScalarTypes___closed__10;
x_3 = l_Lean_Compiler_numScalarTypes___closed__11;
x_4 = l_Lean_Compiler_numScalarTypes___closed__12;
x_5 = lean_cstr_to_nat("4294967296");
x_6 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_6, 0, x_1);
@ -520,7 +510,7 @@ lean_ctor_set(x_6, 4, x_5);
return x_6;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__15() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__14() {
_start:
{
lean_object* x_1; lean_object* x_2;
@ -529,12 +519,22 @@ x_2 = l_Lean_Compiler_mkUIntTypeName(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__15() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__14;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__16() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__15;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_1 = l_Lean_Compiler_numScalarTypes___closed__14;
x_2 = l_Lean_Compiler_numScalarTypes___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -542,21 +542,11 @@ return x_3;
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__17() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__15;
x_2 = l_Lean_Compiler_numScalarTypes___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__18() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_1 = lean_unsigned_to_nat(64u);
x_2 = l_Lean_Compiler_numScalarTypes___closed__15;
x_3 = l_Lean_Compiler_numScalarTypes___closed__16;
x_4 = l_Lean_Compiler_numScalarTypes___closed__17;
x_2 = l_Lean_Compiler_numScalarTypes___closed__14;
x_3 = l_Lean_Compiler_numScalarTypes___closed__15;
x_4 = l_Lean_Compiler_numScalarTypes___closed__16;
x_5 = l_uint64Sz___closed__1;
x_6 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_6, 0, x_1);
@ -567,7 +557,7 @@ lean_ctor_set(x_6, 4, x_5);
return x_6;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__19() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__18() {
_start:
{
lean_object* x_1;
@ -575,12 +565,22 @@ x_1 = lean_mk_string("USize");
return x_1;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__20() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__19() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Compiler_numScalarTypes___closed__19;
x_2 = l_Lean_Compiler_numScalarTypes___closed__18;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__20() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__19;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -589,8 +589,8 @@ lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__21() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__20;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_1 = l_Lean_Compiler_numScalarTypes___closed__19;
x_2 = l_Lean_Compiler_numScalarTypes___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -598,21 +598,11 @@ return x_3;
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__22() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__20;
x_2 = l_Lean_Compiler_numScalarTypes___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__23() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
x_1 = l_System_Platform_numBits;
x_2 = l_Lean_Compiler_numScalarTypes___closed__20;
x_3 = l_Lean_Compiler_numScalarTypes___closed__21;
x_4 = l_Lean_Compiler_numScalarTypes___closed__22;
x_2 = l_Lean_Compiler_numScalarTypes___closed__19;
x_3 = l_Lean_Compiler_numScalarTypes___closed__20;
x_4 = l_Lean_Compiler_numScalarTypes___closed__21;
x_5 = l_usizeSz___closed__1;
x_6 = lean_alloc_ctor(0, 5, 0);
lean_ctor_set(x_6, 0, x_1);
@ -623,23 +613,35 @@ lean_ctor_set(x_6, 4, x_5);
return x_6;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__24() {
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__23() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Compiler_numScalarTypes___closed__23;
x_2 = l_Lean_Compiler_numScalarTypes___closed__22;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__24() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__17;
x_2 = l_Lean_Compiler_numScalarTypes___closed__23;
x_3 = lean_alloc_ctor(1, 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_Compiler_numScalarTypes___closed__25() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__18;
x_1 = l_Lean_Compiler_numScalarTypes___closed__13;
x_2 = l_Lean_Compiler_numScalarTypes___closed__24;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_1);
@ -651,7 +653,7 @@ lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__26() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__14;
x_1 = l_Lean_Compiler_numScalarTypes___closed__9;
x_2 = l_Lean_Compiler_numScalarTypes___closed__25;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_1);
@ -663,7 +665,7 @@ lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__27() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__10;
x_1 = l_Lean_Compiler_numScalarTypes___closed__5;
x_2 = l_Lean_Compiler_numScalarTypes___closed__26;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_1);
@ -671,23 +673,11 @@ lean_ctor_set(x_3, 1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_numScalarTypes___closed__28() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_numScalarTypes___closed__6;
x_2 = l_Lean_Compiler_numScalarTypes___closed__27;
x_3 = lean_alloc_ctor(1, 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_Compiler_numScalarTypes() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_Compiler_numScalarTypes___closed__28;
x_1 = l_Lean_Compiler_numScalarTypes___closed__27;
return x_1;
}
}
@ -1025,7 +1015,7 @@ lean_object* l_Lean_Compiler_mkUInt32Lit(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3;
x_2 = l_Lean_Compiler_numScalarTypes___closed__14;
x_2 = l_Lean_Compiler_numScalarTypes___closed__13;
x_3 = l_Lean_Compiler_mkUIntLit(x_2, x_1);
return x_3;
}
@ -4071,7 +4061,7 @@ lean_object* _init_l_Lean_Compiler_unFoldFns___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Char");
x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_foldCharOfNat___boxed), 2, 0);
return x_1;
}
}
@ -4079,9 +4069,11 @@ lean_object* _init_l_Lean_Compiler_unFoldFns___closed__6() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_1 = l_Lean_Expr_isCharLit___closed__4;
x_2 = l_Lean_Compiler_unFoldFns___closed__5;
x_3 = lean_name_mk_string(x_1, x_2);
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;
}
}
@ -4089,61 +4081,31 @@ lean_object* _init_l_Lean_Compiler_unFoldFns___closed__7() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_unFoldFns___closed__6;
x_2 = l_Lean_Compiler_numScalarTypes___closed__2;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_unFoldFns___closed__8() {
_start:
{
lean_object* x_1;
x_1 = lean_alloc_closure((void*)(l_Lean_Compiler_foldCharOfNat___boxed), 2, 0);
return x_1;
}
}
lean_object* _init_l_Lean_Compiler_unFoldFns___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_unFoldFns___closed__7;
x_2 = l_Lean_Compiler_unFoldFns___closed__8;
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_Compiler_unFoldFns___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Compiler_unFoldFns___closed__9;
x_2 = l_Lean_Compiler_unFoldFns___closed__6;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Compiler_unFoldFns___closed__11() {
lean_object* _init_l_Lean_Compiler_unFoldFns___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_unFoldFns___closed__4;
x_2 = l_Lean_Compiler_unFoldFns___closed__10;
x_2 = l_Lean_Compiler_unFoldFns___closed__7;
x_3 = lean_alloc_ctor(1, 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_Compiler_unFoldFns___closed__12() {
lean_object* _init_l_Lean_Compiler_unFoldFns___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Compiler_unFoldFns___closed__11;
x_1 = l_Lean_Compiler_unFoldFns___closed__8;
x_2 = l_Lean_Compiler_uintFoldToNatFns;
x_3 = l_List_append___rarg(x_1, x_2);
return x_3;
@ -4153,7 +4115,7 @@ lean_object* _init_l_Lean_Compiler_unFoldFns() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_Compiler_unFoldFns___closed__12;
x_1 = l_Lean_Compiler_unFoldFns___closed__9;
return x_1;
}
}
@ -4454,8 +4416,6 @@ l_Lean_Compiler_numScalarTypes___closed__26 = _init_l_Lean_Compiler_numScalarTyp
lean_mark_persistent(l_Lean_Compiler_numScalarTypes___closed__26);
l_Lean_Compiler_numScalarTypes___closed__27 = _init_l_Lean_Compiler_numScalarTypes___closed__27();
lean_mark_persistent(l_Lean_Compiler_numScalarTypes___closed__27);
l_Lean_Compiler_numScalarTypes___closed__28 = _init_l_Lean_Compiler_numScalarTypes___closed__28();
lean_mark_persistent(l_Lean_Compiler_numScalarTypes___closed__28);
l_Lean_Compiler_numScalarTypes = _init_l_Lean_Compiler_numScalarTypes();
lean_mark_persistent(l_Lean_Compiler_numScalarTypes);
l_Lean_Compiler_foldUIntAdd___closed__1 = _init_l_Lean_Compiler_foldUIntAdd___closed__1();
@ -4736,12 +4696,6 @@ l_Lean_Compiler_unFoldFns___closed__8 = _init_l_Lean_Compiler_unFoldFns___closed
lean_mark_persistent(l_Lean_Compiler_unFoldFns___closed__8);
l_Lean_Compiler_unFoldFns___closed__9 = _init_l_Lean_Compiler_unFoldFns___closed__9();
lean_mark_persistent(l_Lean_Compiler_unFoldFns___closed__9);
l_Lean_Compiler_unFoldFns___closed__10 = _init_l_Lean_Compiler_unFoldFns___closed__10();
lean_mark_persistent(l_Lean_Compiler_unFoldFns___closed__10);
l_Lean_Compiler_unFoldFns___closed__11 = _init_l_Lean_Compiler_unFoldFns___closed__11();
lean_mark_persistent(l_Lean_Compiler_unFoldFns___closed__11);
l_Lean_Compiler_unFoldFns___closed__12 = _init_l_Lean_Compiler_unFoldFns___closed__12();
lean_mark_persistent(l_Lean_Compiler_unFoldFns___closed__12);
l_Lean_Compiler_unFoldFns = _init_l_Lean_Compiler_unFoldFns();
lean_mark_persistent(l_Lean_Compiler_unFoldFns);
return lean_mk_io_result(lean_box(0));

View file

@ -48,8 +48,8 @@ lean_object* lean_array_swap(lean_object*, lean_object*, lean_object*);
lean_object* l_Std_RBNode_fold___main___at_Lean_mkInitAttr___spec__2___boxed(lean_object*, lean_object*);
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_registerParametricAttribute___rarg___lambda__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_mkThunkType___closed__1;
lean_object* l___private_Lean_Compiler_InitAttr_2__isUnitType___boxed(lean_object*);
lean_object* l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
lean_object* l_Lean_mkInitAttr(lean_object*);
extern lean_object* l_Char_HasRepr___closed__1;
lean_object* l_Std_RBNode_fold___main___at_Lean_mkInitAttr___spec__2(lean_object*, lean_object*);
@ -203,14 +203,6 @@ lean_dec(x_1);
return x_2;
}
}
lean_object* _init_l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Unit");
return x_1;
}
}
uint8_t l___private_Lean_Compiler_InitAttr_2__isUnitType(lean_object* x_1) {
_start:
{
@ -226,7 +218,7 @@ if (lean_obj_tag(x_3) == 0)
{
lean_object* x_4; lean_object* x_5; uint8_t x_6;
x_4 = lean_ctor_get(x_2, 1);
x_5 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_5 = l_Lean_mkThunkType___closed__1;
x_6 = lean_string_dec_eq(x_4, x_5);
return x_6;
}
@ -2160,8 +2152,6 @@ if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l___private_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1 = _init_l___private_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1();
lean_mark_persistent(l___private_Lean_Compiler_InitAttr_1__getIOTypeArg___closed__1);
l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1 = _init_l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1();
lean_mark_persistent(l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1);
l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_mkInitAttr___spec__4___closed__1 = _init_l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_mkInitAttr___spec__4___closed__1();
lean_mark_persistent(l___private_Init_Data_Array_QSort_1__partitionAux___main___at_Lean_mkInitAttr___spec__4___closed__1);
l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1___closed__1 = _init_l_Lean_registerParametricAttribute___at_Lean_mkInitAttr___spec__1___closed__1();

File diff suppressed because it is too large Load diff

View file

@ -107,6 +107,7 @@ lean_object* l_Lean_Elab_Term_synthesizeAppInstMVars(lean_object*, lean_object*,
lean_object* l___private_Lean_Elab_App_18__elabAppLValsAux___main___closed__1;
lean_object* l___regBuiltin_Lean_Elab_Term_elabId(lean_object*);
lean_object* l_Lean_Elab_Term_addNamedArg___closed__6;
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1;
lean_object* l___private_Lean_Elab_App_13__resolveLValAux___closed__2;
lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_App_21__elabAppFn___main(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*);
@ -133,7 +134,6 @@ lean_object* l_Lean_FindMVar_main___main___at___private_Lean_Elab_App_6__hasType
extern lean_object* l_Lean_mkTermIdFromIdent___closed__2;
lean_object* l_List_foldlM___main___at___private_Lean_Elab_App_16__mkBaseProjections___spec__1___closed__2;
extern lean_object* l_Lean_Format_repr___main___closed__13;
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2;
lean_object* l___private_Lean_Elab_App_17__addLValArg___main___closed__3;
lean_object* l___private_Lean_Elab_App_21__elabAppFn(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_getAppNumArgsAux___main(lean_object*, lean_object*);
@ -18551,7 +18551,7 @@ lean_dec(x_11);
if (x_13 == 0)
{
uint8_t x_14; uint8_t x_329; lean_object* x_437; uint8_t x_438;
x_437 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_437 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
lean_inc(x_1);
x_438 = l_Lean_Syntax_isOfKind(x_1, x_437);
if (x_438 == 0)
@ -22071,7 +22071,7 @@ _start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_Elab_Term_termElabAttribute;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_4 = l___regBuiltin_Lean_Elab_Term_elabProj___closed__1;
x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1);
return x_5;

View file

@ -60,13 +60,13 @@ extern lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___elambda__3_
lean_object* l___private_Lean_Elab_Binders_6__matchBinder(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Binders_9__getFunBinderIdsAux_x3f___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltin_Lean_Elab_Term_elabArrow___closed__1;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_18__processNonVariable___closed__1;
extern lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___elambda__3___closed__2;
lean_object* l_Lean_Elab_Term_elabFunBinders___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_declareTacticSyntax___closed__2;
lean_object* l_Lean_mkIdentFrom(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_compileDecl(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Binders_11__expandFunBindersAux___main___closed__6;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_19__processNonVariable___closed__1;
lean_object* l_Lean_Elab_Term_mkLambda(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_termParser_parenthesizer___lambda__1___closed__5;
lean_object* lean_expr_instantiate1(lean_object*, lean_object*);
@ -6123,7 +6123,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_SourceInfo_inhabited___closed__1;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_19__processNonVariable___closed__1;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_18__processNonVariable___closed__1;
x_3 = lean_alloc_ctor(2, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);

View file

@ -107,7 +107,6 @@ lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__4;
extern lean_object* l_Lean_Parser_Term_pow___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_expandSubtype(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__2;
extern lean_object* l_Lean_Meta_evalNat___main___closed__10;
lean_object* l_Lean_Elab_Term_compileDecl(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabMul___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_expandIf___closed__7;
@ -140,6 +139,7 @@ lean_object* l_Lean_Elab_Term_elabDiv___closed__3;
lean_object* l___regBuiltin_Lean_Elab_Term_elabHEq___closed__1;
lean_object* l_Lean_Elab_Term_elabBNe(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_appArg_x21(lean_object*);
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_elabParserMacro___lambda__1___closed__2;
lean_object* l_Lean_Elab_Term_elabLT___boxed(lean_object*, lean_object*, lean_object*);
lean_object* lean_string_utf8_byte_size(lean_object*);
@ -191,7 +191,6 @@ lean_object* l_Lean_Elab_Term_addDecl(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_mkTermIdFromIdent___closed__2;
lean_object* l_Array_foldlStepMAux___main___at_Lean_Elab_Term_elabParen___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltin_Lean_Elab_Term_elabTParserMacro(lean_object*);
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2;
extern lean_object* l_Lean_Parser_Term_add___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_expandShow___closed__2;
lean_object* l___private_Lean_Elab_BuiltinNotation_1__elabParserMacroAux___closed__24;
@ -431,6 +430,7 @@ lean_object* l_Lean_Elab_Term_elabOrM___boxed(lean_object*, lean_object*, lean_o
lean_object* l___private_Lean_Elab_BuiltinNotation_1__elabParserMacroAux___closed__3;
lean_object* l___private_Lean_Elab_BuiltinNotation_5__getPropToDecide___closed__2;
lean_object* l___private_Lean_Elab_BuiltinNotation_3__mkNativeReflAuxDecl___closed__1;
extern lean_object* l_Lean_Meta_evalNat___main___closed__9;
lean_object* l_Lean_Elab_Term_elabGE___boxed(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_seqRight___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_expandIf___closed__2;
@ -807,7 +807,7 @@ x_19 = lean_array_push(x_18, x_15);
x_20 = l_Lean_Elab_Term_expandDollarProj___closed__1;
x_21 = lean_array_push(x_19, x_20);
x_22 = lean_array_push(x_21, x_17);
x_23 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_23 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_24 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_24, 0, x_23);
lean_ctor_set(x_24, 1, x_22);
@ -7407,7 +7407,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Elab_Term_elabSub___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__10;
x_2 = l_Lean_Meta_evalNat___main___closed__9;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}

View file

@ -19,6 +19,7 @@ lean_object* l___private_Lean_Elab_Declaration_7__expandMutualPreamble_x3f___clo
lean_object* l_Lean_Elab_Term_throwErrorAt___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_expandOptDeclSig(lean_object*);
extern lean_object* l_Lean_Parser_Command_abbrev___elambda__1___closed__2;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_object* l___private_Lean_Elab_Declaration_7__expandMutualPreamble_x3f___closed__7;
lean_object* l_Lean_Elab_Command_addDecl(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_instantiateMVars(lean_object*, lean_object*, lean_object*);
@ -77,7 +78,6 @@ lean_object* lean_array_fget(lean_object*, lean_object*);
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_levelMVarToParam(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Declaration_7__expandMutualPreamble_x3f___closed__12;
extern lean_object* l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
lean_object* l___private_Lean_Elab_Declaration_6__splitMutualPreamble(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_elabAxiom(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_tacticBlock___elambda__1___closed__7;
@ -808,7 +808,7 @@ x_32 = lean_ctor_get(x_29, 1);
x_33 = lean_ctor_get(x_31, 0);
lean_inc(x_33);
lean_dec(x_31);
x_34 = l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
x_34 = l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_inc(x_33);
x_35 = l_Lean_CollectLevelParams_main___main(x_33, x_34);
x_36 = lean_ctor_get(x_35, 2);
@ -863,7 +863,7 @@ lean_dec(x_29);
x_49 = lean_ctor_get(x_47, 0);
lean_inc(x_49);
lean_dec(x_47);
x_50 = l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
x_50 = l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_inc(x_49);
x_51 = l_Lean_CollectLevelParams_main___main(x_49, x_50);
x_52 = lean_ctor_get(x_51, 2);

View file

@ -19,6 +19,7 @@ lean_object* l_Lean_Elab_Term_removeUnused(lean_object*, lean_object*, lean_obje
lean_object* l_Lean_Elab_Term_throwErrorAt___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
extern lean_object* l___private_Lean_Meta_ExprDefEq_8__checkTypesAndAssign___closed__7;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_object* l_Lean_Elab_Command_addDecl(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkSort(lean_object*);
lean_object* l_Lean_Elab_Term_instantiateMVars(lean_object*, lean_object*, lean_object*);
@ -53,7 +54,6 @@ lean_object* l_Lean_Elab_Command_mkDeclName(lean_object*, lean_object*, lean_obj
lean_object* l_Lean_Elab_Command_elabDefLike___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_state_sharecommon(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_levelMVarToParam(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
lean_object* l_Lean_Elab_Term_throwUnsupportedSyntax___rarg(lean_object*);
lean_object* l_Lean_Elab_Command_DefKind_isTheorem___boxed(lean_object*);
uint8_t l_Lean_Elab_Command_DefKind_isDefOrAbbrevOrOpaque(uint8_t);
@ -666,7 +666,7 @@ x_45 = lean_state_sharecommon(x_44, x_38);
x_46 = lean_ctor_get(x_45, 0);
lean_inc(x_46);
lean_dec(x_45);
x_47 = l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
x_47 = l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_inc(x_43);
x_48 = l_Lean_CollectLevelParams_main___main(x_43, x_47);
lean_inc(x_46);

View file

@ -31,6 +31,7 @@ extern lean_object* l_Lean_Expr_eq_x3f___closed__2;
lean_object* l_Array_forMAux___main___at___private_Lean_Elab_Inductive_4__checkLevelNames___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Meta_Basic_5__forallTelescopeReducingAuxAux___main___at___private_Lean_Elab_Inductive_30__replaceIndFVarsWithConsts___spec__3(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_checkValidInductiveModifier___closed__6;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_object* l_Lean_Elab_Command_addDecl(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkSort(lean_object*);
lean_object* l_Lean_Elab_Command_checkValidInductiveModifier___closed__5;
@ -165,7 +166,6 @@ lean_object* l___private_Lean_Elab_Inductive_23__updateResultingUniverse(lean_ob
uint8_t l_Lean_Level_isParam(lean_object*);
lean_object* l___private_Lean_Elab_Inductive_16__elabCtors___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_mk_below(lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
lean_object* l_List_map___main___at___private_Lean_Elab_Inductive_32__applyInferMod___spec__2___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_getLevel(lean_object*, lean_object*, lean_object*);
lean_object* lean_nat_sub(lean_object*, lean_object*);
@ -10222,7 +10222,7 @@ lean_object* l___private_Lean_Elab_Inductive_28__collectLevelParamsInInductive(l
_start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_2 = l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
x_3 = l_List_foldl___main___at___private_Lean_Elab_Inductive_28__collectLevelParamsInInductive___spec__2(x_2, x_1);
x_4 = lean_ctor_get(x_3, 2);
lean_inc(x_4);

File diff suppressed because it is too large Load diff

View file

@ -122,7 +122,6 @@ lean_object* l___private_Lean_Elab_Quotation_8__letBindRhss(lean_object*, lean_o
extern lean_object* l_String_splitAux___main___closed__1;
lean_object* l___private_Lean_Elab_Quotation_7__getPatternVarsAux___main(lean_object*);
lean_object* l___private_Lean_Elab_Quotation_2__quoteSyntax___main(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_unitToExpr___lambda__1___closed__3;
lean_object* l___private_Lean_Elab_Quotation_6__compileStxMatch___main___closed__14;
lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_Quotation_antiquotKind_x3f___boxed(lean_object*);
@ -259,6 +258,7 @@ lean_object* l___private_Lean_Elab_Quotation_10__toPreterm___main___closed__5;
extern lean_object* l_Lean_Unhygienic_MonadQuotation___closed__4;
lean_object* l_Lean_Elab_Term_Quotation_isAntiquotSplicePat___boxed(lean_object*);
lean_object* l___private_Lean_Elab_Quotation_10__toPreterm___main___lambda__3___closed__1;
extern lean_object* l_Lean_mkThunkType___closed__1;
lean_object* l_Lean_Elab_Term_Quotation_getAntiquotTerm(lean_object*);
lean_object* lean_mk_empty_local_ctx(lean_object*);
lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*);
@ -267,7 +267,6 @@ lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___elambda__3___close
lean_object* l___private_Lean_Elab_Quotation_6__compileStxMatch___main___closed__36;
uint8_t l_Array_anyRangeMAux___main___at_Lean_Elab_Term_Quotation_isAntiquotSplicePat___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_List_map___main___at___private_Lean_Elab_Quotation_7__getPatternVarsAux___main___spec__1(lean_object*);
extern lean_object* l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
lean_object* l_Nat_repr(lean_object*);
lean_object* l___private_Lean_Elab_Quotation_11__oldRunTermElabM___rarg___closed__5;
lean_object* l_Lean_Elab_Term_Quotation_stxQuot_expand___closed__15;
@ -280,6 +279,7 @@ extern lean_object* l_Lean_Elab_Term_expandCDot_x3f___closed__3;
lean_object* l___private_Lean_Elab_Quotation_10__toPreterm___main___lambda__3___closed__2;
lean_object* l_List_foldl___main___at___private_Lean_Elab_Quotation_10__toPreterm___main___spec__7(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Quotation_10__toPreterm___main___lambda__1___closed__1;
extern lean_object* l_Lean_unitToExpr___lambda__1___closed__1;
lean_object* l_Lean_Syntax_getId(lean_object*);
lean_object* l_List_foldl___main___at___private_Lean_Elab_Quotation_10__toPreterm___main___spec__14(lean_object*, lean_object*, lean_object*);
lean_object* lean_get_antiquot_vars(lean_object*, lean_object*);
@ -14687,9 +14687,9 @@ else
lean_object* x_162; lean_object* x_163; lean_object* x_164; lean_object* x_165; lean_object* x_166; lean_object* x_167; lean_object* x_168;
lean_dec(x_156);
lean_dec(x_2);
x_162 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_162 = l_Lean_mkThunkType___closed__1;
x_163 = lean_name_mk_string(x_41, x_162);
x_164 = l_Lean_unitToExpr___lambda__1___closed__3;
x_164 = l_Lean_unitToExpr___lambda__1___closed__1;
x_165 = lean_name_mk_string(x_163, x_164);
x_166 = lean_box(0);
x_167 = l_Lean_mkConst(x_165, x_166);
@ -16773,9 +16773,9 @@ else
lean_object* x_733; lean_object* x_734; lean_object* x_735; lean_object* x_736; lean_object* x_737; lean_object* x_738; lean_object* x_739;
lean_dec(x_727);
lean_dec(x_2);
x_733 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_733 = l_Lean_mkThunkType___closed__1;
x_734 = lean_name_mk_string(x_41, x_733);
x_735 = l_Lean_unitToExpr___lambda__1___closed__3;
x_735 = l_Lean_unitToExpr___lambda__1___closed__1;
x_736 = lean_name_mk_string(x_734, x_735);
x_737 = lean_box(0);
x_738 = l_Lean_mkConst(x_736, x_737);
@ -18546,9 +18546,9 @@ else
lean_object* x_1190; lean_object* x_1191; lean_object* x_1192; lean_object* x_1193; lean_object* x_1194; lean_object* x_1195; lean_object* x_1196;
lean_dec(x_1184);
lean_dec(x_2);
x_1190 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_1190 = l_Lean_mkThunkType___closed__1;
x_1191 = lean_name_mk_string(x_41, x_1190);
x_1192 = l_Lean_unitToExpr___lambda__1___closed__3;
x_1192 = l_Lean_unitToExpr___lambda__1___closed__1;
x_1193 = lean_name_mk_string(x_1191, x_1192);
x_1194 = lean_box(0);
x_1195 = l_Lean_mkConst(x_1193, x_1194);
@ -20352,9 +20352,9 @@ else
lean_object* x_1653; lean_object* x_1654; lean_object* x_1655; lean_object* x_1656; lean_object* x_1657; lean_object* x_1658; lean_object* x_1659;
lean_dec(x_1647);
lean_dec(x_2);
x_1653 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_1653 = l_Lean_mkThunkType___closed__1;
x_1654 = lean_name_mk_string(x_41, x_1653);
x_1655 = l_Lean_unitToExpr___lambda__1___closed__3;
x_1655 = l_Lean_unitToExpr___lambda__1___closed__1;
x_1656 = lean_name_mk_string(x_1654, x_1655);
x_1657 = lean_box(0);
x_1658 = l_Lean_mkConst(x_1656, x_1657);
@ -22190,9 +22190,9 @@ else
lean_object* x_2123; lean_object* x_2124; lean_object* x_2125; lean_object* x_2126; lean_object* x_2127; lean_object* x_2128; lean_object* x_2129;
lean_dec(x_2117);
lean_dec(x_2);
x_2123 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_2123 = l_Lean_mkThunkType___closed__1;
x_2124 = lean_name_mk_string(x_41, x_2123);
x_2125 = l_Lean_unitToExpr___lambda__1___closed__3;
x_2125 = l_Lean_unitToExpr___lambda__1___closed__1;
x_2126 = lean_name_mk_string(x_2124, x_2125);
x_2127 = lean_box(0);
x_2128 = l_Lean_mkConst(x_2126, x_2127);
@ -24304,9 +24304,9 @@ else
lean_object* x_2636; lean_object* x_2637; lean_object* x_2638; lean_object* x_2639; lean_object* x_2640; lean_object* x_2641; lean_object* x_2642;
lean_dec(x_2630);
lean_dec(x_2484);
x_2636 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_2636 = l_Lean_mkThunkType___closed__1;
x_2637 = lean_name_mk_string(x_2505, x_2636);
x_2638 = l_Lean_unitToExpr___lambda__1___closed__3;
x_2638 = l_Lean_unitToExpr___lambda__1___closed__1;
x_2639 = lean_name_mk_string(x_2637, x_2638);
x_2640 = lean_box(0);
x_2641 = l_Lean_mkConst(x_2639, x_2640);

View file

@ -96,6 +96,7 @@ extern lean_object* l___private_Lean_Elab_Quotation_4__getHeadInfo___elambda__3_
lean_object* l_Std_HashMapImp_moveEntries___main___at___private_Lean_Elab_StructInst_12__mkFieldMap___spec__6(lean_object*, lean_object*, lean_object*);
lean_object* l_List_append___rarg(lean_object*, lean_object*);
lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_StructInst_19__expandStruct___main___spec__11(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_annotation_x3f(lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_StructInst_5__getStructName___rarg___closed__1;
uint8_t l_Lean_Expr_isApp(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_formatStruct___main___closed__5;
@ -141,6 +142,7 @@ extern lean_object* l_Id_monad;
lean_object* l_List_foldlM___main___at___private_Lean_Elab_StructInst_24__elabStruct___main___spec__1___closed__1;
lean_object* l_Lean_Expr_appArg_x21(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_mkDefaultValueAux_x3f(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__1;
lean_object* l_List_map___main___at___private_Lean_Elab_StructInst_19__expandStruct___main___spec__2(lean_object*);
lean_object* lean_string_utf8_byte_size(lean_object*);
lean_object* l_List_head_x21___rarg(lean_object*, lean_object*);
@ -187,16 +189,15 @@ lean_object* l_Lean_Elab_Term_StructInst_Source_isNone___boxed(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_Struct_inhabited;
lean_object* l_List_mapM___main___at___private_Lean_Elab_StructInst_9__expandNumLitFields___spec__1___closed__6;
lean_object* l_Std_HashMapImp_find_x3f___at___private_Lean_Elab_StructInst_12__mkFieldMap___spec__1___boxed(lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__2;
lean_object* l_Lean_Elab_Term_StructInst_Struct_structName(lean_object*);
lean_object* l_Lean_Expr_getAppNumArgsAux___main(lean_object*, lean_object*);
uint8_t lean_metavar_ctx_is_expr_assigned(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_defaultMissing_x3f___boxed(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_mkDefaultValueAux_x3f___main(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_StructInst_25__elabStructInstAux___closed__2;
lean_object* l___private_Lean_Elab_StructInst_17__groupFields___lambda__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_propagateLoop___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_StructInst_25__elabStructInstAux___closed__4;
lean_object* l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f___boxed(lean_object*);
lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*);
lean_object* l_Array_iterateMAux___main___at___private_Lean_Elab_StructInst_19__expandStruct___main___spec__11___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_propagateLoop___main___closed__1;
@ -286,6 +287,7 @@ lean_object* l_Array_foldlStepMAux___main___at___private_Lean_Elab_StructInst_3_
lean_object* l_Lean_Elab_Term_StructInst_findField_x3f(lean_object*, lean_object*);
extern lean_object* l_Lean_Options_empty;
lean_object* lean_expr_dbg_to_string(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_defaultMissing_x3f(lean_object*);
lean_object* l_Lean_getPathToBaseStructure_x3f(lean_object*, lean_object*, lean_object*);
lean_object* l_List_mapM___main___at___private_Lean_Elab_StructInst_9__expandNumLitFields___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
size_t lean_usize_modn(size_t, lean_object*);
@ -356,7 +358,6 @@ size_t lean_ptr_addr(lean_object*);
lean_object* l_Array_foldlStepMAux___main___at___private_Lean_Elab_StructInst_3__isModifyOp_x3f___spec__1___closed__3;
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_propagateLoop___main___closed__3;
lean_object* lean_instantiate_value_lparams(lean_object*, lean_object*);
lean_object* l_Lean_isAnnotation_x3f(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_throwFailedToElabField___rarg___closed__2;
lean_object* l_Lean_Elab_Term_StructInst_formatField___closed__1;
lean_object* l_Lean_Elab_Term_setMCtx(lean_object*, lean_object*, lean_object*);
@ -434,7 +435,6 @@ lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_propagateLoop(lean_object
extern lean_object* l_PUnit_Inhabited;
extern lean_object* l_Lean_mkOptionalNode___closed__1;
lean_object* l___private_Lean_Elab_StructInst_17__groupFields___lambda__3___closed__1;
lean_object* l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(lean_object*);
lean_object* l_Lean_Elab_Term_StructInst_elabStructInst___closed__3;
lean_object* l_Lean_Elab_Term_StructInst_DefaultFields_findDefaultMissing_x3f___main___boxed(lean_object*, lean_object*);
lean_object* l_Std_HashMapImp_expand___at___private_Lean_Elab_StructInst_12__mkFieldMap___spec__5(lean_object*, lean_object*);
@ -2486,7 +2486,7 @@ lean_ctor_set(x_69, 1, x_67);
lean_ctor_set(x_69, 2, x_66);
lean_ctor_set(x_69, 3, x_68);
x_70 = lean_array_push(x_64, x_69);
x_71 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_71 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_72 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_72, 0, x_71);
lean_ctor_set(x_72, 1, x_70);
@ -2715,7 +2715,7 @@ lean_ctor_set(x_206, 1, x_204);
lean_ctor_set(x_206, 2, x_201);
lean_ctor_set(x_206, 3, x_205);
x_207 = lean_array_push(x_199, x_206);
x_208 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_208 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_209 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_209, 0, x_208);
lean_ctor_set(x_209, 1, x_207);
@ -12733,7 +12733,7 @@ x_6 = l___private_Lean_Meta_EqnCompiler_CaseArraySizes_2__introArrayLitAux___mai
x_7 = lean_array_push(x_6, x_1);
x_8 = lean_array_push(x_7, x_4);
x_9 = lean_array_push(x_8, x_5);
x_10 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_10 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_11 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_11, 0, x_10);
lean_ctor_set(x_11, 1, x_9);
@ -16952,20 +16952,20 @@ x_3 = l_Lean_mkAnnotation(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(lean_object* x_1) {
lean_object* l_Lean_Elab_Term_StructInst_defaultMissing_x3f(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3;
x_2 = l_Lean_Elab_Term_StructInst_markDefaultMissing___closed__2;
x_3 = l_Lean_isAnnotation_x3f(x_2, x_1);
x_3 = l_Lean_annotation_x3f(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f___boxed(lean_object* x_1) {
lean_object* l_Lean_Elab_Term_StructInst_defaultMissing_x3f___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_1);
x_2 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_1);
lean_dec(x_1);
return x_2;
}
@ -21199,7 +21199,7 @@ lean_object* x_7; lean_object* x_8;
x_7 = lean_ctor_get(x_4, 0);
lean_inc(x_7);
lean_dec(x_4);
x_8 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_7);
x_8 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_7);
lean_dec(x_7);
if (lean_obj_tag(x_8) == 0)
{
@ -22566,7 +22566,7 @@ if (x_69 == 0)
{
lean_object* x_70; lean_object* x_71;
x_70 = lean_ctor_get(x_68, 0);
x_71 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_2);
x_71 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_2);
if (lean_obj_tag(x_71) == 0)
{
lean_object* x_72;
@ -22601,7 +22601,7 @@ x_76 = lean_ctor_get(x_68, 1);
lean_inc(x_76);
lean_inc(x_75);
lean_dec(x_68);
x_77 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_2);
x_77 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_2);
if (lean_obj_tag(x_77) == 0)
{
lean_object* x_78; lean_object* x_79;
@ -22832,7 +22832,7 @@ block_98:
if (x_4 == 0)
{
lean_object* x_6;
x_6 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_2);
x_6 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_2);
if (lean_obj_tag(x_6) == 0)
{
switch (lean_obj_tag(x_2)) {
@ -24128,7 +24128,7 @@ lean_dec(x_2);
x_13 = lean_ctor_get(x_8, 0);
lean_inc(x_13);
lean_dec(x_8);
x_14 = l_Lean_Elab_Term_StructInst_isDefaultMissing_x3f(x_13);
x_14 = l_Lean_Elab_Term_StructInst_defaultMissing_x3f(x_13);
lean_dec(x_13);
if (lean_obj_tag(x_14) == 0)
{

View file

@ -30,6 +30,7 @@ lean_object* l___private_Lean_Elab_Structure_10__withFields___main___rarg___clos
lean_object* l___private_Lean_Elab_Structure_23__addCtorFields___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Command_StructFieldInfo_inhabited;
lean_object* l_Lean_Name_eraseMacroScopes(lean_object*);
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_object* l___private_Lean_Elab_Structure_28__mkAuxConstructions___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_List_map___main___at___private_Lean_Elab_Structure_25__elabStructureView___spec__2(lean_object*);
lean_object* l_Lean_Elab_Command_addDecl(lean_object*, lean_object*, lean_object*);
@ -122,7 +123,6 @@ extern lean_object* l_Lean_Expr_Inhabited___closed__1;
uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Structure_8__processSubfields(lean_object*);
lean_object* l_Array_forMAux___main___at___private_Lean_Elab_Structure_15__levelMVarToParamFVars___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
extern lean_object* l_Lean_Parser_Term_type___elambda__1___closed__5;
uint8_t l_Lean_Elab_Command_StructFieldInfo_isSubobject(lean_object*);
lean_object* l_Lean_Elab_Term_getLevel(lean_object*, lean_object*, lean_object*);
@ -8042,7 +8042,7 @@ _start:
{
lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_6 = lean_unsigned_to_nat(0u);
x_7 = l_Lean_Meta_DepElim_getUnusedLevelParam___closed__1;
x_7 = l___private_Lean_Meta_EqnCompiler_DepElim_35__getUnusedLevelParam___closed__1;
lean_inc(x_4);
x_8 = l_Array_iterateMAux___main___at___private_Lean_Elab_Structure_21__collectLevelParamsInFVars___spec__1(x_1, x_1, x_6, x_7, x_4, x_5);
if (lean_obj_tag(x_8) == 0)

View file

@ -361,7 +361,6 @@ lean_object* l_Lean_Elab_Tactic_logTrace(lean_object*, lean_object*, lean_object
lean_object* l_Lean_Elab_Tactic_evalFailIfSuccess(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_evalChoiceAux(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_withFreshMacroScope___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l_List_erase___main___at___private_Lean_Meta_EqnCompiler_DepElim_21__processAsPattern___spec__1(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_throwError(lean_object*);
lean_object* l_Lean_Syntax_getPos(lean_object*);
lean_object* l___regBuiltin_Lean_Elab_Tactic_evalParen___closed__1;
@ -380,6 +379,7 @@ lean_object* l_Lean_Elab_Tactic_adaptExpander(lean_object*, lean_object*, lean_o
lean_object* l_Lean_Elab_Tactic_throwErrorAt___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_focusAux___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Tactic_Basic_3__getIntrosSize(lean_object*);
lean_object* l_List_erase___main___at___private_Lean_Meta_EqnCompiler_DepElim_20__processAsPattern___spec__1(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_getFVarIds(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_log___at_Lean_Elab_Tactic_evalTraceState___spec__1(uint8_t, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Tactic_getEnv___rarg(lean_object*);
@ -16045,7 +16045,7 @@ lean_dec(x_14);
x_20 = lean_ctor_get(x_15, 0);
lean_inc(x_20);
lean_dec(x_15);
x_21 = l_List_erase___main___at___private_Lean_Meta_EqnCompiler_DepElim_21__processAsPattern___spec__1(x_12, x_20);
x_21 = l_List_erase___main___at___private_Lean_Meta_EqnCompiler_DepElim_20__processAsPattern___spec__1(x_12, x_20);
x_22 = lean_box(0);
x_23 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_23, 0, x_20);

View file

@ -34,6 +34,7 @@ lean_object* l___private_Lean_Elab_Tactic_Induction_18__checkCasesResult(lean_ob
lean_object* l___private_Lean_Elab_Tactic_Induction_13__getRecInfoDefault___closed__2;
lean_object* l_Lean_Elab_Tactic_getRecFromUsing___closed__3;
lean_object* l___private_Lean_Elab_Tactic_Induction_13__getRecInfoDefault___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_mkThunk___closed__1;
lean_object* l___private_Lean_Elab_Tactic_Induction_18__checkCasesResult___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_eraseIdx___rarg(lean_object*, lean_object*);
lean_object* l_Array_forMAux___main___at___private_Lean_Elab_Tactic_Induction_11__checkAltCtorNames___spec__2___closed__2;
@ -147,7 +148,6 @@ lean_object* l___private_Lean_Elab_Tactic_Induction_6__generalizeVars___lambda__
lean_object* l___private_Lean_Elab_Tactic_Induction_4__generalizeMajor___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Array_forMAux___main___at___private_Lean_Elab_Tactic_Induction_11__checkAltCtorNames___spec__2___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Tactic_Induction_17__checkCasesResultAux(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_mkAuxName___closed__1;
lean_object* l_Lean_Meta_mkRecursorInfo(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Tactic_Induction_6__generalizeVars___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l_List_foldr___main___at___private_Lean_Elab_Tactic_Induction_11__checkAltCtorNames___spec__1(lean_object*, uint8_t, lean_object*);
@ -1465,7 +1465,7 @@ lean_inc(x_13);
x_14 = lean_alloc_closure((void*)(l_Array_forMAux___main___at___private_Lean_Elab_Tactic_Induction_11__checkAltCtorNames___spec__2___lambda__1___boxed), 3, 2);
lean_closure_set(x_14, 0, x_13);
lean_closure_set(x_14, 1, x_10);
x_15 = l_Lean_Meta_mkAuxName___closed__1;
x_15 = l_Lean_mkThunk___closed__1;
x_16 = lean_name_eq(x_13, x_15);
x_17 = lean_ctor_get(x_4, 0);
lean_inc(x_17);
@ -6667,7 +6667,7 @@ lean_object* x_6; lean_object* x_7; lean_object* x_8; uint8_t x_9;
x_6 = lean_array_fget(x_1, x_2);
x_7 = l___private_Lean_Elab_Tactic_Induction_8__getAltName(x_6);
lean_dec(x_6);
x_8 = l_Lean_Meta_mkAuxName___closed__1;
x_8 = l_Lean_mkThunk___closed__1;
x_9 = lean_name_eq(x_7, x_8);
lean_dec(x_7);
if (x_9 == 0)

View file

@ -134,7 +134,6 @@ lean_object* l_Lean_Elab_Term_getDecLevel(lean_object*, lean_object*, lean_objec
lean_object* l_Lean_Elab_Term_monadQuotation___closed__2;
lean_object* l_Lean_Meta_instantiateLevelMVars(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkIdentFrom(lean_object*, lean_object*);
extern lean_object* l_Lean_Parser_declareBuiltinParser___closed__3;
lean_object* l_Lean_Elab_Term_withoutPostponing(lean_object*);
lean_object* l_Lean_Elab_Term_synthesizeInstMVarCore___closed__13;
lean_object* l_Lean_Elab_Term_decLevel(lean_object*, lean_object*, lean_object*);
@ -199,13 +198,11 @@ extern lean_object* l_Lean_Parser_Term_tupleTail___elambda__1___closed__2;
lean_object* l___regBuiltin_Lean_Elab_Term_elabTypeStx(lean_object*);
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;
lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_withLetDecl___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
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*);
lean_object* l_Lean_Elab_Term_elabParen___closed__5;
lean_object* l_Lean_Elab_Term_mkTermElabAttribute___closed__5;
extern lean_object* l_Lean_LocalContext_Inhabited___closed__1;
lean_object* l_Lean_Elab_Term_resolveName___closed__5;
@ -277,7 +274,7 @@ lean_object* l_Lean_Elab_Term_tryCoe(lean_object*, lean_object*, lean_object*, l
lean_object* l___private_Lean_Elab_Term_17__elabOptLevel___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Term_18__mkPairsAux___main___closed__3;
lean_object* l_Lean_Elab_Term_tryPostponeIfNoneOrMVar(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabParen___closed__4;
extern lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__1;
lean_object* l_Lean_Elab_Term_throwErrorAt(lean_object*);
lean_object* l_Lean_Elab_Term_elabLevel(lean_object*, lean_object*, lean_object*);
lean_object* l___regBuiltin_Lean_Elab_Term_elabNamedHole(lean_object*);
@ -475,6 +472,7 @@ lean_object* l_Lean_Elab_Term_mkFreshFVarId(lean_object*);
lean_object* l_Lean_Elab_Term_elabTermAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabLevel___boxed(lean_object*, lean_object*, lean_object*);
size_t lean_usize_modn(size_t, lean_object*);
extern lean_object* l_Lean_charToExpr___lambda__1___closed__1;
lean_object* l_Lean_Elab_Term_expandCDot_x3f___closed__2;
lean_object* l_Lean_SMap_find_x3f___at_Lean_Elab_Term_elabUsingElabFns___spec__1___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_expandArrayLit___closed__4;
@ -484,7 +482,6 @@ lean_object* l_Lean_FileMap_toPosition(lean_object*, lean_object*);
extern lean_object* l_Lean_KernelException_toMessageData___closed__15;
lean_object* l_Lean_Elab_Term_liftLevelM(lean_object*);
lean_object* l_Lean_Elab_Term_elabProp(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_charToExpr___lambda__1___closed__2;
lean_object* l_Lean_Elab_Term_resolveName___closed__8;
lean_object* l_Lean_Elab_addMacroStack(lean_object*, lean_object*);
lean_object* l_Lean_LocalDecl_toExpr(lean_object*);
@ -633,7 +630,6 @@ lean_object* l_Lean_Elab_Term_withTransparency___rarg___boxed(lean_object*, lean
lean_object* l_Lean_Meta_isLevelDefEq(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_assignLevelMVar___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
uint8_t l___private_Lean_Elab_Term_12__isExplicit(lean_object*);
extern lean_object* l_Lean_Meta_evalNat___main___closed__9;
lean_object* lean_metavar_ctx_assign_level(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Term_11__elabUsingElabFnsAux(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_tryLiftAndCoe___closed__6;
@ -784,7 +780,6 @@ lean_object* l___private_Lean_Elab_Term_11__elabUsingElabFnsAux___main___closed_
lean_object* l___private_Lean_Elab_Term_24__regTraceClasses(lean_object*);
lean_object* lean_compile_decl(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_Meta_resettingSynthInstanceCache___rarg___closed__1;
lean_object* l_Lean_Elab_Term_elabRawCharLit___closed__1;
lean_object* l_Lean_MetavarContext_getDecl(lean_object*, lean_object*);
lean_object* l_Lean_Syntax_formatStxAux___main(lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_resetSynthInstanceCache___boxed(lean_object*);
@ -824,7 +819,6 @@ lean_object* l___private_Lean_Elab_Term_18__mkPairsAux___main___boxed(lean_objec
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*);
uint8_t l_Array_isEqvAux___main___at_Lean_Elab_Term_withLocalContext___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Elab_Term_elabRawCharLit___closed__2;
lean_object* l_Lean_Elab_Term_mkFreshInstanceName___boxed(lean_object*);
lean_object* l_Lean_Meta_mkFreshExprMVarWithId(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l___private_Lean_Elab_Term_11__elabUsingElabFnsAux___main___closed__2;
@ -27452,7 +27446,7 @@ _start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_Elab_Term_termElabAttribute;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_4 = l___regBuiltin_Lean_Elab_Term_elabSort___closed__1;
x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1);
return x_5;
@ -28334,26 +28328,6 @@ lean_ctor_set(x_2, 0, x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Elab_Term_elabParen___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_declareBuiltinParser___closed__3;
x_2 = l_Lean_unitToExpr___lambda__1___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabParen___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabParen___closed__4;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_elabParen(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
@ -28504,7 +28478,7 @@ lean_dec(x_36);
lean_dec(x_3);
lean_dec(x_2);
lean_dec(x_1);
x_146 = l_Lean_Elab_Term_elabParen___closed__5;
x_146 = l_Lean_unitToExpr___lambda__1___closed__3;
x_147 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_147, 0, x_146);
lean_ctor_set(x_147, 1, x_4);
@ -30694,7 +30668,7 @@ if (x_26 == 0)
{
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30;
x_27 = lean_ctor_get(x_25, 0);
x_28 = l_Lean_Meta_evalNat___main___closed__9;
x_28 = l_Lean_Meta_evalNat___main___closed__8;
x_29 = l_Lean_mkConst(x_28, x_21);
x_30 = l_Lean_mkApp3(x_29, x_10, x_27, x_5);
lean_ctor_set(x_25, 0, x_30);
@ -30708,7 +30682,7 @@ x_32 = lean_ctor_get(x_25, 1);
lean_inc(x_32);
lean_inc(x_31);
lean_dec(x_25);
x_33 = l_Lean_Meta_evalNat___main___closed__9;
x_33 = l_Lean_Meta_evalNat___main___closed__8;
x_34 = l_Lean_mkConst(x_33, x_21);
x_35 = l_Lean_mkApp3(x_34, x_10, x_31, x_5);
x_36 = lean_alloc_ctor(0, 2, 0);
@ -30865,26 +30839,6 @@ x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1);
return x_5;
}
}
lean_object* _init_l_Lean_Elab_Term_elabRawCharLit___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_charToExpr___lambda__1___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__8;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Elab_Term_elabRawCharLit___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Elab_Term_elabRawCharLit___closed__1;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_Elab_Term_elabRawCharLit(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
@ -30908,7 +30862,7 @@ x_9 = lean_unbox_uint32(x_8);
lean_dec(x_8);
x_10 = lean_uint32_to_nat(x_9);
x_11 = l_Lean_mkNatLit(x_10);
x_12 = l_Lean_Elab_Term_elabRawCharLit___closed__2;
x_12 = l_Lean_charToExpr___lambda__1___closed__1;
x_13 = l_Lean_mkApp(x_12, x_11);
x_14 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_14, 0, x_13);
@ -31977,10 +31931,6 @@ l_Lean_Elab_Term_elabParen___closed__2 = _init_l_Lean_Elab_Term_elabParen___clos
lean_mark_persistent(l_Lean_Elab_Term_elabParen___closed__2);
l_Lean_Elab_Term_elabParen___closed__3 = _init_l_Lean_Elab_Term_elabParen___closed__3();
lean_mark_persistent(l_Lean_Elab_Term_elabParen___closed__3);
l_Lean_Elab_Term_elabParen___closed__4 = _init_l_Lean_Elab_Term_elabParen___closed__4();
lean_mark_persistent(l_Lean_Elab_Term_elabParen___closed__4);
l_Lean_Elab_Term_elabParen___closed__5 = _init_l_Lean_Elab_Term_elabParen___closed__5();
lean_mark_persistent(l_Lean_Elab_Term_elabParen___closed__5);
l___regBuiltin_Lean_Elab_Term_elabParen___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabParen___closed__1();
lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabParen___closed__1);
res = l___regBuiltin_Lean_Elab_Term_elabParen(lean_io_mk_world());
@ -32081,10 +32031,6 @@ lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabNum___closed__1);
res = l___regBuiltin_Lean_Elab_Term_elabNum(lean_io_mk_world());
if (lean_io_result_is_error(res)) return res;
lean_dec_ref(res);
l_Lean_Elab_Term_elabRawCharLit___closed__1 = _init_l_Lean_Elab_Term_elabRawCharLit___closed__1();
lean_mark_persistent(l_Lean_Elab_Term_elabRawCharLit___closed__1);
l_Lean_Elab_Term_elabRawCharLit___closed__2 = _init_l_Lean_Elab_Term_elabRawCharLit___closed__2();
lean_mark_persistent(l_Lean_Elab_Term_elabRawCharLit___closed__2);
l___regBuiltin_Lean_Elab_Term_elabRawCharLit___closed__1 = _init_l___regBuiltin_Lean_Elab_Term_elabRawCharLit___closed__1();
lean_mark_persistent(l___regBuiltin_Lean_Elab_Term_elabRawCharLit___closed__1);
res = l___regBuiltin_Lean_Elab_Term_elabRawCharLit(lean_io_mk_world());

View file

@ -15,6 +15,8 @@ extern "C" {
#endif
lean_object* l_Lean_Expr_isBinding___boxed(lean_object*);
lean_object* l_Lean_Expr_letName_x21___closed__2;
extern lean_object* l_Lean_mkHole___closed__3;
lean_object* l_Lean_Expr_ctorName___closed__7;
lean_object* l___private_Lean_Expr_8__etaExpandedBody(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Expr_bindingInfo_x21(lean_object*);
lean_object* l_Lean_Expr_updateSort___boxed(lean_object*, lean_object*, lean_object*);
@ -26,10 +28,12 @@ lean_object* l_Lean_Expr_Data_hash___boxed(lean_object*);
lean_object* l_List_hash___at_Lean_mkConst___spec__1___boxed(lean_object*);
lean_object* l_Lean_Expr_mvarId_x21(lean_object*);
lean_object* l_Lean_Expr_bindingDomain_x21___boxed(lean_object*);
uint8_t l_Lean_Expr_isCharLit(lean_object*);
lean_object* l_Lean_Expr_letName_x21(lean_object*);
uint8_t l_Lean_Expr_isNatLit(lean_object*);
lean_object* l_Lean_Name_eraseMacroScopes(lean_object*);
lean_object* l_Lean_Expr_replaceFVar___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkThunkType___closed__2;
lean_object* l_Lean_Expr_updateLambda___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_getAppNumArgs___boxed(lean_object*);
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
@ -46,6 +50,7 @@ lean_object* l_Lean_Expr_updateConst___boxed(lean_object*, lean_object*, lean_ob
lean_object* l_Lean_mkDecIsTrue___closed__3;
lean_object* l_unreachable_x21___rarg(lean_object*);
lean_object* l_Lean_Expr_withApp(lean_object*);
lean_object* l_Lean_mkThunk___closed__1;
size_t l_UInt32_toUSize(uint32_t);
lean_object* l_Lean_mkApp6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_eqv___boxed(lean_object*, lean_object*);
@ -76,6 +81,7 @@ lean_object* l_Lean_Expr_isOptParam___boxed(lean_object*);
lean_object* l_Lean_Expr_updateMData_x21___closed__1;
lean_object* l_List_map___main___at_Lean_Expr_instantiateLevelParams___spec__4(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkForallEx___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkThunkType(lean_object*);
lean_object* l_Lean_Expr_Data_hasBeq___boxed(lean_object*, lean_object*);
lean_object* l_Lean_mkLambda___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_getAutoParamTactic_x3f(lean_object*);
@ -95,6 +101,7 @@ lean_object* l___private_Lean_Expr_2__mkAppRangeAux___boxed(lean_object*, lean_o
lean_object* l___private_Lean_Expr_5__withAppRevAux(lean_object*);
lean_object* l_Lean_ExprStructEq_Hashable;
lean_object* l___private_Init_Util_1__mkPanicMessage(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__1;
lean_object* l_Lean_Expr_instantiateLevelParamsArray(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_getAppFn___main___boxed(lean_object*);
lean_object* l_Lean_Expr_constName_x21___closed__1;
@ -105,16 +112,20 @@ lean_object* l_Lean_Expr_constName_x21___boxed(lean_object*);
lean_object* l___private_Lean_Expr_8__etaExpandedBody___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_withAppRev___rarg(lean_object*, lean_object*);
uint64_t l_Lean_Expr_mkData___closed__3;
lean_object* l_Lean_annotation_x3f___boxed(lean_object*, lean_object*);
uint64_t l_Lean_Expr_mkDataForBinder(size_t, lean_object*, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t);
lean_object* lean_expr_mk_local(lean_object*, lean_object*, lean_object*, uint8_t);
lean_object* l_Lean_annotation_x3f(lean_object*, lean_object*);
lean_object* l_Lean_Expr_constName_x3f___boxed(lean_object*);
lean_object* l_Lean_Expr_binderInfoEx___boxed(lean_object*);
lean_object* l_Lean_Expr_InstantiateLevelParams_instantiate___main___at_Lean_Expr_instantiateLevelParams___spec__1(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Expr_isApp(lean_object*);
lean_object* l_Lean_Expr_Data_binderInfo___boxed(lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__2;
uint8_t l_Lean_Expr_hasLooseBVarInExplicitDomain(lean_object*, lean_object*, uint8_t);
lean_object* l_Lean_Expr_hasFVarEx___boxed(lean_object*);
size_t l_Lean_Level_hash(lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__8;
lean_object* l_Lean_Expr_lt___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Expr_updateLet___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_appFn_x21(lean_object*);
@ -125,6 +136,7 @@ uint8_t l_Lean_Expr_isAppOf(lean_object*, lean_object*);
lean_object* l_Lean_Expr_mvarId_x21___closed__2;
lean_object* l_Lean_BinderInfo_toUInt64___boxed(lean_object*);
lean_object* l_Lean_Expr_bindingBody_x21___closed__1;
lean_object* l_Lean_Expr_ctorName___closed__4;
uint8_t l_Lean_Expr_isBVar(lean_object*);
lean_object* lean_expr_instantiate1(lean_object*, lean_object*);
lean_object* l_Lean_Literal_type___closed__3;
@ -153,6 +165,7 @@ uint8_t lean_expr_lt(lean_object*, lean_object*);
lean_object* l_Lean_Expr_getRevArg_x21(lean_object*, lean_object*);
lean_object* l_Lean_Expr_letName_x21___closed__1;
lean_object* l_Lean_Expr_isAppOfArity___main___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkThunkType___closed__3;
lean_object* l_Lean_BinderInfo_hashable___closed__1;
lean_object* l_Lean_Expr_letName_x21___boxed(lean_object*);
lean_object* l_Lean_Expr_updateForall_x21(lean_object*, uint8_t, lean_object*, lean_object*);
@ -160,10 +173,12 @@ lean_object* l_Lean_Expr_looseBVarRange___boxed(lean_object*);
lean_object* l___private_Lean_Expr_9__etaExpandedAux(lean_object*, lean_object*);
lean_object* l_Lean_Expr_mkDataForBinder___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_BinderInfo_hash___boxed(lean_object*);
lean_object* l_Lean_Expr_ctorName___boxed(lean_object*);
lean_object* lean_expr_mk_forall(lean_object*, lean_object*, lean_object*, uint8_t);
lean_object* lean_expr_instantiate(lean_object*, lean_object*);
lean_object* l_Lean_Expr_bindingName_x21___closed__2;
extern lean_object* l_Lean_levelZero;
extern lean_object* l_Lean_mkAppStx___closed__7;
lean_object* lean_nat_add(lean_object*, lean_object*);
lean_object* l_Lean_Expr_hasExprMVarEx___boxed(lean_object*);
lean_object* l_Lean_ExprStructEq_HasRepr(lean_object*);
@ -176,6 +191,7 @@ lean_object* l_Lean_Expr_getAppFn___boxed(lean_object*);
lean_object* l_List_foldr___main___at_Lean_mkConst___spec__3___boxed(lean_object*, lean_object*);
uint8_t lean_expr_has_loose_bvar(lean_object*, lean_object*);
lean_object* l_Lean_mkAppN(lean_object*, lean_object*);
lean_object* l_Lean_Expr_natLit_x3f___boxed(lean_object*);
lean_object* l_Lean_mkMData(lean_object*, lean_object*);
size_t l_List_hash___at_Lean_mkConst___spec__1(lean_object*);
lean_object* l_Lean_Level_instantiateParams___main___at_Lean_Expr_instantiateLevelParams___spec__3(lean_object*, lean_object*, lean_object*);
@ -226,6 +242,7 @@ uint8_t lean_expr_has_mvar(lean_object*);
uint8_t l_Lean_KVMap_getBool(lean_object*, lean_object*, uint8_t);
lean_object* l_List_map___main___at_Lean_Expr_instantiateLevelParamsArray___spec__4(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Literal_beq(lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__5;
lean_object* l_Lean_Level_instantiateParams___main___at_Lean_Expr_instantiateLevelParams___spec__3___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_replaceFVar(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_headBeta(lean_object*);
@ -247,6 +264,7 @@ uint8_t l_Lean_Expr_isHeadBetaTarget(lean_object*);
uint8_t l_Lean_Expr_isBinding(lean_object*);
lean_object* l_Lean_Expr_bindingBody_x21___boxed(lean_object*);
lean_object* l_Lean_Expr_updateProj_x21(lean_object*, lean_object*);
lean_object* l_Lean_mkThunkType___closed__1;
lean_object* l_Lean_mkDecIsTrue___closed__1;
lean_object* l_Lean_BinderInfo_beq___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Expr_instantiateLevelParams(lean_object*, lean_object*, lean_object*);
@ -275,9 +293,12 @@ lean_object* l_Lean_Expr_getArg_x21___boxed(lean_object*, lean_object*, lean_obj
lean_object* l_Lean_Expr_bindingDomain_x21___closed__1;
lean_object* l_Lean_KVMap_insertCore___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_InstantiateLevelParams_instantiate(lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__3;
lean_object* l_Lean_Expr_natLit_x3f(lean_object*);
lean_object* lean_expr_mk_const(lean_object*, lean_object*);
lean_object* l___private_Lean_Expr_1__Expr_mkDataCore___closed__2;
lean_object* l_Lean_mkAppRange(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_isCharLit___closed__3;
lean_object* l_Lean_Literal_type___closed__4;
lean_object* l_Lean_mkDecIsTrue___closed__4;
lean_object* lean_expr_mk_lit(lean_object*);
@ -332,6 +353,7 @@ lean_object* l_Lean_Expr_getAutoParamTactic_x3f___closed__2;
lean_object* l_Lean_Level_instantiateParams___main(lean_object*, lean_object*);
uint8_t l_Lean_Expr_isLambda(lean_object*);
lean_object* l_Lean_Expr_updateSort_x21___closed__2;
lean_object* l_Lean_Expr_ctorName(lean_object*);
lean_object* l_Lean_Expr_replaceFVarId(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkApp9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_data___boxed(lean_object*);
@ -345,6 +367,7 @@ lean_object* l_Lean_mkLocal(lean_object*, lean_object*, lean_object*, uint8_t);
lean_object* l_Lean_Literal_hasBeq;
lean_object* l_Lean_Expr_getAppNumArgsAux___main___boxed(lean_object*, lean_object*);
lean_object* l___private_Lean_Expr_5__withAppRevAux___main___rarg(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__9;
lean_object* l_Lean_Expr_instantiateRevRange___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Array_insertAt___rarg___closed__1;
lean_object* l_Lean_Expr_updateLambda_x21___closed__1;
@ -356,7 +379,6 @@ lean_object* l_Lean_Expr_updateProj_x21___closed__1;
uint8_t l_Lean_BinderInfo_inhabited;
lean_object* lean_level_update_imax(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_HasRepr;
lean_object* l_Lean_isAnnotation_x3f(lean_object*, lean_object*);
lean_object* l_Lean_Expr_isProj___boxed(lean_object*);
lean_object* l_Lean_Expr_updateLambda_x21___closed__2;
lean_object* l_Lean_Level_instantiateParams___main___at_Lean_Expr_instantiateLevelParamsArray___spec__2___boxed(lean_object*, lean_object*, lean_object*);
@ -372,6 +394,7 @@ lean_object* l___private_Lean_Expr_12__getParamSubstArray___boxed(lean_object*,
lean_object* lean_expr_mk_mvar(lean_object*);
lean_object* l_Lean_Expr_bindingName_x21(lean_object*);
lean_object* l_Lean_Expr_constLevels_x21___boxed(lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__10;
lean_object* l_Lean_Level_instantiateParams___main___at_Lean_Expr_instantiateLevelParamsArray___spec__2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_BinderInfo_hasBeq;
lean_object* l_Lean_Expr_constLevels_x21___closed__1;
@ -482,10 +505,12 @@ size_t lean_usize_mix_hash(size_t, size_t);
uint8_t l_Lean_Expr_isOptParam(lean_object*);
lean_object* lean_expr_abstract(lean_object*, lean_object*);
lean_object* l_Lean_Expr_getArg_x21(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__12;
lean_object* l_Lean_mkApp2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_InstantiateLevelParams_instantiate___main___at_Lean_Expr_instantiateLevelParams___spec__1___boxed(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Expr_Data_hasBeq(uint64_t, uint64_t);
lean_object* l___private_Lean_Expr_6__mkAppRevRangeAux___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__6;
uint32_t lean_expr_loose_bvar_range(lean_object*);
lean_object* l_Lean_Expr_inferImplicit(lean_object*, lean_object*, uint8_t);
lean_object* l_Lean_Expr_mkAppRevRange___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
@ -518,6 +543,7 @@ uint8_t l_List_foldr___main___at_Lean_mkConst___spec__4(uint8_t, lean_object*);
lean_object* l_Lean_Expr_etaExpandedStrict_x3f(lean_object*);
lean_object* l_Lean_Expr_updateLambdaE_x21(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_hasLooseBVar___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Expr_ctorName___closed__11;
lean_object* l___private_Lean_Expr_2__mkAppRangeAux___main___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Nat_Inhabited;
uint64_t l_UInt64_shiftRight(uint64_t, uint64_t);
@ -527,6 +553,7 @@ lean_object* lean_lit_type(lean_object*);
lean_object* l_Lean_Expr_getArgD___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* lean_expr_update_app(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ExprStructEq_HasToString___boxed(lean_object*);
lean_object* l_Lean_Expr_isCharLit___closed__2;
lean_object* l_Lean_Expr_getRevArgD___main___boxed(lean_object*, lean_object*, lean_object*);
size_t l_Lean_BinderInfo_hash(uint8_t);
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
@ -534,6 +561,7 @@ lean_object* l_Lean_Expr_getRevArgD___main(lean_object*, lean_object*, lean_obje
lean_object* l_Lean_mkApp10(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_isApp___boxed(lean_object*);
lean_object* l_Lean_Expr_HasBeq;
lean_object* l_Lean_Expr_isCharLit___closed__4;
lean_object* l_Lean_mkApp8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkBVar(lean_object*);
uint8_t l_Lean_Expr_hasFVar(lean_object*);
@ -574,8 +602,9 @@ uint8_t lean_string_dec_lt(lean_object*, lean_object*);
lean_object* l_Lean_Expr_isLet___boxed(lean_object*);
lean_object* l_Lean_ExprStructEq_hash___boxed(lean_object*);
lean_object* l_Lean_Level_instantiateParams___main___at_Lean_Expr_instantiateLevelParams___spec__2(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Expr_isCharLit___closed__1;
lean_object* l_Lean_Expr_isCharLit___boxed(lean_object*);
uint8_t lean_string_dec_eq(lean_object*, lean_object*);
lean_object* l_Lean_isAnnotation_x3f___boxed(lean_object*, lean_object*);
uint32_t l_Lean_Expr_Data_looseBVarRange(uint64_t);
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
lean_object* l___private_Lean_Expr_5__withAppRevAux___rarg(lean_object*, lean_object*, lean_object*);
@ -583,6 +612,7 @@ uint64_t l_Lean_Expr_mkData(size_t, lean_object*, uint8_t, uint8_t, uint8_t, uin
lean_object* l_monadInhabited___rarg(lean_object*, lean_object*);
lean_object* l_Lean_ExprStructEq_HasBeq;
uint8_t lean_expr_has_level_param(lean_object*);
lean_object* l_Lean_mkThunk(lean_object*);
lean_object* _init_l_Lean_Literal_inhabited___closed__1() {
_start:
{
@ -1777,6 +1807,196 @@ x_3 = lean_box_uint64(x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("bvar");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__2() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("fvar");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("mvar");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__4() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("sort");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__5() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("const");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__6() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("lam");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__7() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("forallE");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__8() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("letE");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__9() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("lit");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__10() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("mdata");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__11() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("proj");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_ctorName___closed__12() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("localE");
return x_1;
}
}
lean_object* l_Lean_Expr_ctorName(lean_object* x_1) {
_start:
{
switch (lean_obj_tag(x_1)) {
case 0:
{
lean_object* x_2;
x_2 = l_Lean_Expr_ctorName___closed__1;
return x_2;
}
case 1:
{
lean_object* x_3;
x_3 = l_Lean_Expr_ctorName___closed__2;
return x_3;
}
case 2:
{
lean_object* x_4;
x_4 = l_Lean_Expr_ctorName___closed__3;
return x_4;
}
case 3:
{
lean_object* x_5;
x_5 = l_Lean_Expr_ctorName___closed__4;
return x_5;
}
case 4:
{
lean_object* x_6;
x_6 = l_Lean_Expr_ctorName___closed__5;
return x_6;
}
case 5:
{
lean_object* x_7;
x_7 = l_Lean_mkAppStx___closed__7;
return x_7;
}
case 6:
{
lean_object* x_8;
x_8 = l_Lean_Expr_ctorName___closed__6;
return x_8;
}
case 7:
{
lean_object* x_9;
x_9 = l_Lean_Expr_ctorName___closed__7;
return x_9;
}
case 8:
{
lean_object* x_10;
x_10 = l_Lean_Expr_ctorName___closed__8;
return x_10;
}
case 9:
{
lean_object* x_11;
x_11 = l_Lean_Expr_ctorName___closed__9;
return x_11;
}
case 10:
{
lean_object* x_12;
x_12 = l_Lean_Expr_ctorName___closed__10;
return x_12;
}
case 11:
{
lean_object* x_13;
x_13 = l_Lean_Expr_ctorName___closed__11;
return x_13;
}
default:
{
lean_object* x_14;
x_14 = l_Lean_Expr_ctorName___closed__12;
return x_14;
}
}
}
}
lean_object* l_Lean_Expr_ctorName___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Lean_Expr_ctorName(x_1);
lean_dec(x_1);
return x_2;
}
}
size_t l_Lean_Expr_hash(lean_object* x_1) {
_start:
{
@ -3954,6 +4174,66 @@ lean_dec(x_1);
return x_6;
}
}
lean_object* _init_l_Lean_mkThunkType___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Unit");
return x_1;
}
}
lean_object* _init_l_Lean_mkThunkType___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_mkThunkType___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_mkThunkType___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_mkThunkType___closed__2;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_mkThunkType(lean_object* x_1) {
_start:
{
lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5;
x_2 = lean_box(0);
x_3 = 0;
x_4 = l_Lean_mkThunkType___closed__3;
x_5 = l_Lean_mkForall(x_2, x_3, x_4, x_1);
return x_5;
}
}
lean_object* _init_l_Lean_mkThunk___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_mkHole___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_mkThunk(lean_object* x_1) {
_start:
{
lean_object* x_2; uint8_t x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_mkThunk___closed__1;
x_3 = 0;
x_4 = l_Lean_mkThunkType___closed__3;
x_5 = l_Lean_mkLambda(x_2, x_3, x_4, x_1);
return x_5;
}
}
lean_object* l_Lean_mkLet(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, uint8_t x_5) {
_start:
{
@ -5127,82 +5407,6 @@ x_3 = lean_box(x_2);
return x_3;
}
}
uint8_t l_Lean_Expr_isNatLit(lean_object* x_1) {
_start:
{
if (lean_obj_tag(x_1) == 9)
{
lean_object* x_2;
x_2 = lean_ctor_get(x_1, 0);
if (lean_obj_tag(x_2) == 0)
{
uint8_t x_3;
x_3 = 1;
return x_3;
}
else
{
uint8_t x_4;
x_4 = 0;
return x_4;
}
}
else
{
uint8_t x_5;
x_5 = 0;
return x_5;
}
}
}
lean_object* l_Lean_Expr_isNatLit___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = l_Lean_Expr_isNatLit(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
uint8_t l_Lean_Expr_isStringLit(lean_object* x_1) {
_start:
{
if (lean_obj_tag(x_1) == 9)
{
lean_object* x_2;
x_2 = lean_ctor_get(x_1, 0);
if (lean_obj_tag(x_2) == 0)
{
uint8_t x_3;
x_3 = 0;
return x_3;
}
else
{
uint8_t x_4;
x_4 = 1;
return x_4;
}
}
else
{
uint8_t x_5;
x_5 = 0;
return x_5;
}
}
}
lean_object* l_Lean_Expr_isStringLit___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = l_Lean_Expr_isStringLit(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
lean_object* l_Lean_Expr_getAppFn___main(lean_object* x_1) {
_start:
{
@ -5627,7 +5831,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(489u);
x_2 = lean_unsigned_to_nat(504u);
x_3 = lean_unsigned_to_nat(20u);
x_4 = l_Array_insertAt___rarg___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -5881,7 +6085,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(509u);
x_2 = lean_unsigned_to_nat(524u);
x_3 = lean_unsigned_to_nat(15u);
x_4 = l_Lean_Expr_appFn_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -5922,7 +6126,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(513u);
x_2 = lean_unsigned_to_nat(528u);
x_3 = lean_unsigned_to_nat(15u);
x_4 = l_Lean_Expr_appFn_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -5958,6 +6162,191 @@ lean_dec(x_1);
return x_2;
}
}
uint8_t l_Lean_Expr_isNatLit(lean_object* x_1) {
_start:
{
if (lean_obj_tag(x_1) == 9)
{
lean_object* x_2;
x_2 = lean_ctor_get(x_1, 0);
if (lean_obj_tag(x_2) == 0)
{
uint8_t x_3;
x_3 = 1;
return x_3;
}
else
{
uint8_t x_4;
x_4 = 0;
return x_4;
}
}
else
{
uint8_t x_5;
x_5 = 0;
return x_5;
}
}
}
lean_object* l_Lean_Expr_isNatLit___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = l_Lean_Expr_isNatLit(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
lean_object* l_Lean_Expr_natLit_x3f(lean_object* x_1) {
_start:
{
if (lean_obj_tag(x_1) == 9)
{
lean_object* x_2;
x_2 = lean_ctor_get(x_1, 0);
if (lean_obj_tag(x_2) == 0)
{
lean_object* x_3; lean_object* x_4;
x_3 = lean_ctor_get(x_2, 0);
lean_inc(x_3);
x_4 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_4, 0, x_3);
return x_4;
}
else
{
lean_object* x_5;
x_5 = lean_box(0);
return x_5;
}
}
else
{
lean_object* x_6;
x_6 = lean_box(0);
return x_6;
}
}
}
lean_object* l_Lean_Expr_natLit_x3f___boxed(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Lean_Expr_natLit_x3f(x_1);
lean_dec(x_1);
return x_2;
}
}
uint8_t l_Lean_Expr_isStringLit(lean_object* x_1) {
_start:
{
if (lean_obj_tag(x_1) == 9)
{
lean_object* x_2;
x_2 = lean_ctor_get(x_1, 0);
if (lean_obj_tag(x_2) == 0)
{
uint8_t x_3;
x_3 = 0;
return x_3;
}
else
{
uint8_t x_4;
x_4 = 1;
return x_4;
}
}
else
{
uint8_t x_5;
x_5 = 0;
return x_5;
}
}
}
lean_object* l_Lean_Expr_isStringLit___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = l_Lean_Expr_isStringLit(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Expr_isCharLit___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Char");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_isCharLit___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Expr_isCharLit___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Expr_isCharLit___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("ofNat");
return x_1;
}
}
lean_object* _init_l_Lean_Expr_isCharLit___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Expr_isCharLit___closed__2;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
uint8_t l_Lean_Expr_isCharLit(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3; uint8_t x_4;
x_2 = l_Lean_Expr_isCharLit___closed__4;
x_3 = lean_unsigned_to_nat(1u);
x_4 = l_Lean_Expr_isAppOfArity___main(x_1, x_2, x_3);
if (x_4 == 0)
{
uint8_t x_5;
x_5 = 0;
return x_5;
}
else
{
lean_object* x_6; uint8_t x_7;
x_6 = l_Lean_Expr_appArg_x21(x_1);
x_7 = l_Lean_Expr_isNatLit(x_6);
lean_dec(x_6);
return x_7;
}
}
}
lean_object* l_Lean_Expr_isCharLit___boxed(lean_object* x_1) {
_start:
{
uint8_t x_2; lean_object* x_3;
x_2 = l_Lean_Expr_isCharLit(x_1);
lean_dec(x_1);
x_3 = lean_box(x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Expr_constName_x21___closed__1() {
_start:
{
@ -5971,7 +6360,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(517u);
x_2 = lean_unsigned_to_nat(547u);
x_3 = lean_unsigned_to_nat(17u);
x_4 = l_Lean_Expr_constName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6051,7 +6440,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(525u);
x_2 = lean_unsigned_to_nat(555u);
x_3 = lean_unsigned_to_nat(18u);
x_4 = l_Lean_Expr_constName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6100,7 +6489,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(529u);
x_2 = lean_unsigned_to_nat(559u);
x_3 = lean_unsigned_to_nat(16u);
x_4 = l_Lean_Expr_bvarIdx_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6149,7 +6538,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(533u);
x_2 = lean_unsigned_to_nat(563u);
x_3 = lean_unsigned_to_nat(14u);
x_4 = l_Lean_Expr_fvarId_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6198,7 +6587,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(537u);
x_2 = lean_unsigned_to_nat(567u);
x_3 = lean_unsigned_to_nat(14u);
x_4 = l_Lean_Expr_mvarId_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6247,7 +6636,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(542u);
x_2 = lean_unsigned_to_nat(572u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_bindingName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6297,7 +6686,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(547u);
x_2 = lean_unsigned_to_nat(577u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_bindingName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6347,7 +6736,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(552u);
x_2 = lean_unsigned_to_nat(582u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_bindingName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6397,7 +6786,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(557u);
x_2 = lean_unsigned_to_nat(587u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_bindingName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -6459,7 +6848,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(561u);
x_2 = lean_unsigned_to_nat(591u);
x_3 = lean_unsigned_to_nat(20u);
x_4 = l_Lean_Expr_letName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8088,7 +8477,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(831u);
x_2 = lean_unsigned_to_nat(861u);
x_3 = lean_unsigned_to_nat(18u);
x_4 = l_Lean_Expr_appFn_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8130,7 +8519,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(840u);
x_2 = lean_unsigned_to_nat(870u);
x_3 = lean_unsigned_to_nat(18u);
x_4 = l_Lean_Expr_constName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8179,7 +8568,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(849u);
x_2 = lean_unsigned_to_nat(879u);
x_3 = lean_unsigned_to_nat(14u);
x_4 = l_Lean_Expr_updateSort_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8236,7 +8625,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(866u);
x_2 = lean_unsigned_to_nat(896u);
x_3 = lean_unsigned_to_nat(17u);
x_4 = l_Lean_Expr_updateMData_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8277,7 +8666,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(871u);
x_2 = lean_unsigned_to_nat(901u);
x_3 = lean_unsigned_to_nat(18u);
x_4 = l_Lean_Expr_updateProj_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8328,7 +8717,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(880u);
x_2 = lean_unsigned_to_nat(910u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_updateForall_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8372,7 +8761,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(885u);
x_2 = lean_unsigned_to_nat(915u);
x_3 = lean_unsigned_to_nat(21u);
x_4 = l_Lean_Expr_updateForall_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8426,7 +8815,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(894u);
x_2 = lean_unsigned_to_nat(924u);
x_3 = lean_unsigned_to_nat(17u);
x_4 = l_Lean_Expr_updateLambda_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8470,7 +8859,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(899u);
x_2 = lean_unsigned_to_nat(929u);
x_3 = lean_unsigned_to_nat(17u);
x_4 = l_Lean_Expr_updateLambda_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -8514,7 +8903,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_1 = l___private_Lean_Expr_1__Expr_mkDataCore___closed__1;
x_2 = lean_unsigned_to_nat(908u);
x_2 = lean_unsigned_to_nat(938u);
x_3 = lean_unsigned_to_nat(20u);
x_4 = l_Lean_Expr_letName_x21___closed__1;
x_5 = l___private_Init_Util_1__mkPanicMessage(x_1, x_2, x_3, x_4);
@ -10343,7 +10732,7 @@ x_6 = l_Lean_mkMData(x_5, x_2);
return x_6;
}
}
lean_object* l_Lean_isAnnotation_x3f(lean_object* x_1, lean_object* x_2) {
lean_object* l_Lean_annotation_x3f(lean_object* x_1, lean_object* x_2) {
_start:
{
if (lean_obj_tag(x_2) == 10)
@ -10391,11 +10780,11 @@ return x_14;
}
}
}
lean_object* l_Lean_isAnnotation_x3f___boxed(lean_object* x_1, lean_object* x_2) {
lean_object* l_Lean_annotation_x3f___boxed(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_Lean_isAnnotation_x3f(x_1, x_2);
x_3 = l_Lean_annotation_x3f(x_1, x_2);
lean_dec(x_2);
lean_dec(x_1);
return x_3;
@ -10468,6 +10857,30 @@ l_Lean_Expr_Inhabited___closed__1 = _init_l_Lean_Expr_Inhabited___closed__1();
lean_mark_persistent(l_Lean_Expr_Inhabited___closed__1);
l_Lean_Expr_Inhabited = _init_l_Lean_Expr_Inhabited();
lean_mark_persistent(l_Lean_Expr_Inhabited);
l_Lean_Expr_ctorName___closed__1 = _init_l_Lean_Expr_ctorName___closed__1();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__1);
l_Lean_Expr_ctorName___closed__2 = _init_l_Lean_Expr_ctorName___closed__2();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__2);
l_Lean_Expr_ctorName___closed__3 = _init_l_Lean_Expr_ctorName___closed__3();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__3);
l_Lean_Expr_ctorName___closed__4 = _init_l_Lean_Expr_ctorName___closed__4();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__4);
l_Lean_Expr_ctorName___closed__5 = _init_l_Lean_Expr_ctorName___closed__5();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__5);
l_Lean_Expr_ctorName___closed__6 = _init_l_Lean_Expr_ctorName___closed__6();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__6);
l_Lean_Expr_ctorName___closed__7 = _init_l_Lean_Expr_ctorName___closed__7();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__7);
l_Lean_Expr_ctorName___closed__8 = _init_l_Lean_Expr_ctorName___closed__8();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__8);
l_Lean_Expr_ctorName___closed__9 = _init_l_Lean_Expr_ctorName___closed__9();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__9);
l_Lean_Expr_ctorName___closed__10 = _init_l_Lean_Expr_ctorName___closed__10();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__10);
l_Lean_Expr_ctorName___closed__11 = _init_l_Lean_Expr_ctorName___closed__11();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__11);
l_Lean_Expr_ctorName___closed__12 = _init_l_Lean_Expr_ctorName___closed__12();
lean_mark_persistent(l_Lean_Expr_ctorName___closed__12);
l_Lean_Expr_Hashable___closed__1 = _init_l_Lean_Expr_Hashable___closed__1();
lean_mark_persistent(l_Lean_Expr_Hashable___closed__1);
l_Lean_Expr_Hashable = _init_l_Lean_Expr_Hashable();
@ -10484,6 +10897,14 @@ l_Lean_Literal_type___closed__5 = _init_l_Lean_Literal_type___closed__5();
lean_mark_persistent(l_Lean_Literal_type___closed__5);
l_Lean_Literal_type___closed__6 = _init_l_Lean_Literal_type___closed__6();
lean_mark_persistent(l_Lean_Literal_type___closed__6);
l_Lean_mkThunkType___closed__1 = _init_l_Lean_mkThunkType___closed__1();
lean_mark_persistent(l_Lean_mkThunkType___closed__1);
l_Lean_mkThunkType___closed__2 = _init_l_Lean_mkThunkType___closed__2();
lean_mark_persistent(l_Lean_mkThunkType___closed__2);
l_Lean_mkThunkType___closed__3 = _init_l_Lean_mkThunkType___closed__3();
lean_mark_persistent(l_Lean_mkThunkType___closed__3);
l_Lean_mkThunk___closed__1 = _init_l_Lean_mkThunk___closed__1();
lean_mark_persistent(l_Lean_mkThunk___closed__1);
l_Lean_Expr_HasBeq___closed__1 = _init_l_Lean_Expr_HasBeq___closed__1();
lean_mark_persistent(l_Lean_Expr_HasBeq___closed__1);
l_Lean_Expr_HasBeq = _init_l_Lean_Expr_HasBeq();
@ -10498,6 +10919,14 @@ l_Lean_Expr_appFn_x21___closed__2 = _init_l_Lean_Expr_appFn_x21___closed__2();
lean_mark_persistent(l_Lean_Expr_appFn_x21___closed__2);
l_Lean_Expr_appArg_x21___closed__1 = _init_l_Lean_Expr_appArg_x21___closed__1();
lean_mark_persistent(l_Lean_Expr_appArg_x21___closed__1);
l_Lean_Expr_isCharLit___closed__1 = _init_l_Lean_Expr_isCharLit___closed__1();
lean_mark_persistent(l_Lean_Expr_isCharLit___closed__1);
l_Lean_Expr_isCharLit___closed__2 = _init_l_Lean_Expr_isCharLit___closed__2();
lean_mark_persistent(l_Lean_Expr_isCharLit___closed__2);
l_Lean_Expr_isCharLit___closed__3 = _init_l_Lean_Expr_isCharLit___closed__3();
lean_mark_persistent(l_Lean_Expr_isCharLit___closed__3);
l_Lean_Expr_isCharLit___closed__4 = _init_l_Lean_Expr_isCharLit___closed__4();
lean_mark_persistent(l_Lean_Expr_isCharLit___closed__4);
l_Lean_Expr_constName_x21___closed__1 = _init_l_Lean_Expr_constName_x21___closed__1();
lean_mark_persistent(l_Lean_Expr_constName_x21___closed__1);
l_Lean_Expr_constName_x21___closed__2 = _init_l_Lean_Expr_constName_x21___closed__2();

View file

@ -17,7 +17,6 @@ lean_object* l_List_reverse___rarg(lean_object*);
extern lean_object* l_Lean_Name_toString___closed__1;
lean_object* l_Lean_KeyedDeclsAttribute_init___rarg___lambda__2___boxed(lean_object*);
lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_KeyedDeclsAttribute_Table_insert___spec__23___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_unitToExpr___lambda__1___closed__2;
lean_object* l_Std_PersistentHashMap_insert___at_Lean_KeyedDeclsAttribute_Table_insert___spec__10___rarg(lean_object*, lean_object*, lean_object*);
size_t l_USize_add(size_t, size_t);
lean_object* l_Lean_KeyedDeclsAttribute_KeyedDeclsAttribute_inhabited___closed__2;
@ -25,6 +24,7 @@ lean_object* l_Lean_KeyedDeclsAttribute_declareBuiltin___rarg___closed__3;
lean_object* l_Array_iterateMAux___main___at___private_Lean_KeyedDeclsAttribute_2__addImported___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Std_HashMapImp_find_x3f___at_Lean_KeyedDeclsAttribute_Table_insert___spec__5___rarg(lean_object*, lean_object*);
lean_object* l_Lean_KeyedDeclsAttribute_declareBuiltin(lean_object*);
extern lean_object* l_Lean_mkThunkType___closed__2;
lean_object* l_Std_AssocList_replace___main___at_Lean_KeyedDeclsAttribute_Table_insert___spec__30(lean_object*);
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
lean_object* l_Std_PersistentHashMap_insertAtCollisionNodeAux___main___at_Lean_KeyedDeclsAttribute_Table_insert___spec__23(lean_object*);
@ -3480,7 +3480,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_unitToExpr___lambda__1___closed__2;
x_2 = l_Lean_mkThunkType___closed__2;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}

View file

@ -14,13 +14,13 @@
extern "C" {
#endif
lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_9__withAltsAux___main___rarg___closed__2;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_8__withAltsAux___main___rarg___closed__2;
lean_object* l___private_Lean_Meta_EqnCompiler_1__regTraceClasses(lean_object*);
lean_object* l___private_Lean_Meta_EqnCompiler_1__regTraceClasses(lean_object* x_1) {
_start:
{
lean_object* x_2; lean_object* x_3;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_9__withAltsAux___main___rarg___closed__2;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_8__withAltsAux___main___rarg___closed__2;
x_3 = l_Lean_registerTraceClass(x_2, x_1);
return x_3;
}

File diff suppressed because it is too large Load diff

View file

@ -35,6 +35,7 @@ lean_object* l___private_Lean_Meta_Offset_4__isNatZero___boxed(lean_object*);
lean_object* lean_name_mk_string(lean_object*, lean_object*);
extern lean_object* l_Lean_Literal_type___closed__1;
lean_object* l___private_Lean_Meta_Offset_1__getOffsetAux___main(lean_object*, uint8_t);
extern lean_object* l_Lean_Expr_isCharLit___closed__3;
lean_object* l___private_Lean_Meta_Offset_1__getOffsetAux___main___boxed(lean_object*, lean_object*);
lean_object* l_Lean_Meta_evalNat___main___closed__6;
extern lean_object* l_Lean_Literal_type___closed__2;
@ -52,7 +53,6 @@ lean_object* lean_nat_mul(lean_object*, lean_object*);
lean_object* l_Lean_Meta_evalNat___main___closed__7;
lean_object* l___private_Lean_Meta_Offset_2__getOffset(lean_object*);
lean_object* l_Lean_Meta_evalNat___main___closed__15;
lean_object* l_Lean_Meta_evalNat___main___closed__18;
lean_object* l_Lean_Meta_evalNat___main___closed__3;
lean_object* l_Lean_Meta_evalNat___main___closed__5;
lean_object* l_Lean_Meta_evalNat___main___closed__14;
@ -129,22 +129,14 @@ return x_3;
lean_object* _init_l_Lean_Meta_evalNat___main___closed__8() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("ofNat");
return x_1;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Meta_evalNat___main___closed__7;
x_2 = l_Lean_Meta_evalNat___main___closed__8;
x_2 = l_Lean_Expr_isCharLit___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__10() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__9() {
_start:
{
lean_object* x_1;
@ -152,17 +144,17 @@ x_1 = lean_mk_string("sub");
return x_1;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__11() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__10() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Meta_evalNat___main___closed__3;
x_2 = l_Lean_Meta_evalNat___main___closed__10;
x_2 = l_Lean_Meta_evalNat___main___closed__9;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__12() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__11() {
_start:
{
lean_object* x_1;
@ -170,17 +162,17 @@ x_1 = lean_mk_string("add");
return x_1;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__13() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__12() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Meta_evalNat___main___closed__3;
x_2 = l_Lean_Meta_evalNat___main___closed__12;
x_2 = l_Lean_Meta_evalNat___main___closed__11;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__14() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__13() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
@ -190,12 +182,22 @@ x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__14() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Literal_type___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__9;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__15() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Literal_type___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__10;
x_2 = l_Lean_Meta_evalNat___main___closed__11;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -203,27 +205,17 @@ return x_3;
lean_object* _init_l_Lean_Meta_evalNat___main___closed__16() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Literal_type___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__12;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__17() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("succ");
return x_1;
}
}
lean_object* _init_l_Lean_Meta_evalNat___main___closed__18() {
lean_object* _init_l_Lean_Meta_evalNat___main___closed__17() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Literal_type___closed__2;
x_2 = l_Lean_Meta_evalNat___main___closed__17;
x_2 = l_Lean_Meta_evalNat___main___closed__16;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -328,7 +320,7 @@ lean_inc(x_19);
lean_dec(x_18);
x_20 = lean_unsigned_to_nat(0u);
x_21 = l_Lean_Expr_getAppNumArgsAux___main(x_1, x_20);
x_206 = l_Lean_Meta_evalNat___main___closed__18;
x_206 = l_Lean_Meta_evalNat___main___closed__17;
x_207 = lean_name_eq(x_19, x_206);
if (x_207 == 0)
{
@ -396,7 +388,7 @@ block_127:
{
lean_object* x_23; lean_object* x_73; lean_object* x_101; uint8_t x_102;
lean_dec(x_22);
x_101 = l_Lean_Meta_evalNat___main___closed__13;
x_101 = l_Lean_Meta_evalNat___main___closed__12;
x_102 = lean_name_eq(x_19, x_101);
if (x_102 == 0)
{
@ -497,7 +489,7 @@ x_25 = lean_name_eq(x_19, x_24);
if (x_25 == 0)
{
lean_object* x_26; uint8_t x_27;
x_26 = l_Lean_Meta_evalNat___main___closed__9;
x_26 = l_Lean_Meta_evalNat___main___closed__8;
x_27 = lean_name_eq(x_19, x_26);
lean_dec(x_19);
if (x_27 == 0)
@ -545,7 +537,7 @@ x_39 = lean_nat_dec_eq(x_21, x_38);
if (x_39 == 0)
{
lean_object* x_40; uint8_t x_41;
x_40 = l_Lean_Meta_evalNat___main___closed__9;
x_40 = l_Lean_Meta_evalNat___main___closed__8;
x_41 = lean_name_eq(x_19, x_40);
lean_dec(x_19);
if (x_41 == 0)
@ -661,7 +653,7 @@ block_100:
{
lean_object* x_74; uint8_t x_75;
lean_dec(x_73);
x_74 = l_Lean_Meta_evalNat___main___closed__11;
x_74 = l_Lean_Meta_evalNat___main___closed__10;
x_75 = lean_name_eq(x_19, x_74);
if (x_75 == 0)
{
@ -759,7 +751,7 @@ block_153:
{
lean_object* x_129; uint8_t x_130;
lean_dec(x_128);
x_129 = l_Lean_Meta_evalNat___main___closed__14;
x_129 = l_Lean_Meta_evalNat___main___closed__13;
x_130 = lean_name_eq(x_19, x_129);
if (x_130 == 0)
{
@ -854,7 +846,7 @@ block_179:
{
lean_object* x_155; uint8_t x_156;
lean_dec(x_154);
x_155 = l_Lean_Meta_evalNat___main___closed__15;
x_155 = l_Lean_Meta_evalNat___main___closed__14;
x_156 = lean_name_eq(x_19, x_155);
if (x_156 == 0)
{
@ -949,7 +941,7 @@ block_205:
{
lean_object* x_181; uint8_t x_182;
lean_dec(x_180);
x_181 = l_Lean_Meta_evalNat___main___closed__16;
x_181 = l_Lean_Meta_evalNat___main___closed__15;
x_182 = lean_name_eq(x_19, x_181);
if (x_182 == 0)
{
@ -1120,7 +1112,7 @@ lean_inc(x_11);
lean_dec(x_10);
x_12 = lean_unsigned_to_nat(0u);
x_13 = l_Lean_Expr_getAppNumArgsAux___main(x_1, x_12);
x_90 = l_Lean_Meta_evalNat___main___closed__18;
x_90 = l_Lean_Meta_evalNat___main___closed__17;
x_91 = lean_name_eq(x_11, x_90);
if (x_91 == 0)
{
@ -1230,7 +1222,7 @@ block_52:
{
lean_object* x_15; uint8_t x_16;
lean_dec(x_14);
x_15 = l_Lean_Meta_evalNat___main___closed__13;
x_15 = l_Lean_Meta_evalNat___main___closed__12;
x_16 = lean_name_eq(x_11, x_15);
lean_dec(x_11);
if (x_16 == 0)
@ -1372,7 +1364,7 @@ block_89:
{
lean_object* x_54; uint8_t x_55;
lean_dec(x_53);
x_54 = l_Lean_Meta_evalNat___main___closed__16;
x_54 = l_Lean_Meta_evalNat___main___closed__15;
x_55 = lean_name_eq(x_11, x_54);
if (x_55 == 0)
{
@ -1600,12 +1592,12 @@ lean_inc(x_3);
lean_dec(x_2);
x_4 = lean_unsigned_to_nat(0u);
x_5 = l_Lean_Expr_getAppNumArgsAux___main(x_1, x_4);
x_18 = l_Lean_Meta_evalNat___main___closed__18;
x_18 = l_Lean_Meta_evalNat___main___closed__17;
x_19 = lean_name_eq(x_3, x_18);
if (x_19 == 0)
{
lean_object* x_20; uint8_t x_21;
x_20 = l_Lean_Meta_evalNat___main___closed__16;
x_20 = l_Lean_Meta_evalNat___main___closed__15;
x_21 = lean_name_eq(x_3, x_20);
if (x_21 == 0)
{
@ -1643,7 +1635,7 @@ x_28 = lean_nat_dec_eq(x_5, x_27);
if (x_28 == 0)
{
lean_object* x_29; uint8_t x_30;
x_29 = l_Lean_Meta_evalNat___main___closed__16;
x_29 = l_Lean_Meta_evalNat___main___closed__15;
x_30 = lean_name_eq(x_3, x_29);
if (x_30 == 0)
{
@ -1684,7 +1676,7 @@ return x_36;
block_17:
{
lean_object* x_7; uint8_t x_8;
x_7 = l_Lean_Meta_evalNat___main___closed__13;
x_7 = l_Lean_Meta_evalNat___main___closed__12;
x_8 = lean_name_eq(x_3, x_7);
lean_dec(x_3);
if (x_8 == 0)
@ -1784,7 +1776,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Meta_evalNat___main___closed__16;
x_2 = l_Lean_Meta_evalNat___main___closed__15;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
@ -2361,8 +2353,6 @@ l_Lean_Meta_evalNat___main___closed__16 = _init_l_Lean_Meta_evalNat___main___clo
lean_mark_persistent(l_Lean_Meta_evalNat___main___closed__16);
l_Lean_Meta_evalNat___main___closed__17 = _init_l_Lean_Meta_evalNat___main___closed__17();
lean_mark_persistent(l_Lean_Meta_evalNat___main___closed__17);
l_Lean_Meta_evalNat___main___closed__18 = _init_l_Lean_Meta_evalNat___main___closed__18();
lean_mark_persistent(l_Lean_Meta_evalNat___main___closed__18);
l___private_Lean_Meta_Offset_5__mkOffset___closed__1 = _init_l___private_Lean_Meta_Offset_5__mkOffset___closed__1();
lean_mark_persistent(l___private_Lean_Meta_Offset_5__mkOffset___closed__1);
return lean_mk_io_result(lean_box(0));

View file

@ -13,10 +13,10 @@
#ifdef __cplusplus
extern "C" {
#endif
extern lean_object* l_Lean_mkHole___closed__3;
lean_object* l_Lean_Expr_mvarId_x21(lean_object*);
lean_object* lean_local_ctx_get_unused_name(lean_object*, lean_object*);
lean_object* l_Lean_Meta_isClassExpensive___main(lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_mkThunk___closed__1;
lean_object* l_Lean_Meta_introN(lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*);
lean_object* l_Lean_Meta_withNewLocalInstances___main___at_Lean_Meta_introN___spec__4(uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_EIO_Monad___closed__1;
@ -69,7 +69,6 @@ lean_object* l_Lean_mkFVar(lean_object*);
uint8_t l_Lean_Expr_Data_binderInfo(uint64_t);
lean_object* l_Lean_Meta_introNCoreAux___main___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_intro___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Meta_mkAuxName___closed__1;
lean_object* l_Lean_LocalDecl_type(lean_object*);
lean_object* lean_local_ctx_mk_local_decl(lean_object*, lean_object*, lean_object*, lean_object*, uint8_t);
lean_object* l_Array_umapMAux___main___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -836,16 +835,6 @@ lean_dec(x_5);
return x_7;
}
}
lean_object* _init_l_Lean_Meta_mkAuxName___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_mkHole___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* l_Lean_Meta_mkAuxName(uint8_t x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4) {
_start:
{
@ -878,7 +867,7 @@ lean_inc(x_8);
x_9 = lean_ctor_get(x_4, 1);
lean_inc(x_9);
lean_dec(x_4);
x_10 = l_Lean_Meta_mkAuxName___closed__1;
x_10 = l_Lean_mkThunk___closed__1;
x_11 = lean_name_eq(x_8, x_10);
if (x_11 == 0)
{
@ -5804,8 +5793,6 @@ l_Lean_Meta_introNCoreAux___main___rarg___closed__1 = _init_l_Lean_Meta_introNCo
lean_mark_persistent(l_Lean_Meta_introNCoreAux___main___rarg___closed__1);
l_Lean_Meta_introNCore___rarg___lambda__2___closed__1 = _init_l_Lean_Meta_introNCore___rarg___lambda__2___closed__1();
lean_mark_persistent(l_Lean_Meta_introNCore___rarg___lambda__2___closed__1);
l_Lean_Meta_mkAuxName___closed__1 = _init_l_Lean_Meta_mkAuxName___closed__1();
lean_mark_persistent(l_Lean_Meta_mkAuxName___closed__1);
return lean_mk_io_result(lean_box(0));
}
#ifdef __cplusplus

View file

@ -72,7 +72,6 @@ lean_object* l___private_Lean_Parser_Extension_2__throwParserCategoryAlreadyDefi
lean_object* l_Lean_Parser_mkParserState(lean_object*);
lean_object* l_Lean_Parser_mkParserExtension___lambda__2(lean_object*);
lean_object* lean_io_ref_get(lean_object*, lean_object*);
lean_object* l_Lean_Parser_declareBuiltinParser___closed__5;
lean_object* l_List_map___main___at_Lean_Parser_addLeadingParser___spec__4(lean_object*);
lean_object* l___private_Lean_Parser_Extension_13__registerParserAttributeImplBuilder___closed__1;
lean_object* l_Lean_Parser_declareBuiltinParser___closed__3;
@ -105,7 +104,6 @@ lean_object* l_Lean_Parser_declareBuiltinParser___closed__2;
extern lean_object* l_Lean_mkAppStx___closed__4;
lean_object* l___private_Lean_Parser_Extension_11__BuiltinParserAttribute_add___closed__1;
lean_object* l_Lean_Parser_parserExtension___closed__1;
lean_object* l_Lean_Parser_declareBuiltinParser___closed__4;
extern lean_object* l_Lean_nameLitKind;
extern lean_object* l_Lean_LocalContext_Inhabited___closed__1;
lean_object* l_Array_anyRangeMAux___main___at_Lean_Parser_mkParserExtension___spec__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
@ -157,6 +155,7 @@ extern lean_object* l_Lean_PrettyPrinter_Parenthesizer_mkParenthesizerOfConstant
lean_object* l_Lean_Parser_declareBuiltinParser(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_noFirstTokenInfo(lean_object*);
lean_object* l_Std_PersistentHashMap_insertAux___main___at___private_Lean_Parser_Extension_3__addParserCategoryCore___spec__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
extern lean_object* l_Lean_KeyedDeclsAttribute_declareBuiltin___rarg___closed__6;
lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__1;
extern lean_object* l_Std_PersistentHashMap_insertAux___main___rarg___closed__3;
extern lean_object* l_Lean_strLitKind;
@ -167,7 +166,6 @@ lean_object* l_Lean_Parser_mkParserOfConstantUnsafe(lean_object*, lean_object*,
lean_object* l_Lean_registerAttributeOfBuilder(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Name_append___main(lean_object*, lean_object*);
lean_object* l_Lean_Parser_regTermParserAttribute___closed__1;
extern lean_object* l_Lean_KeyedDeclsAttribute_declareBuiltin___rarg___closed__4;
lean_object* l_Lean_Parser_mkParserExtension___closed__8;
lean_object* l_Lean_Parser_whitespace___main(lean_object*, lean_object*);
lean_object* l_Lean_Parser_parserExtension___closed__4;
@ -187,7 +185,6 @@ lean_object* l_Lean_Parser_mkParserExtension___lambda__2___boxed(lean_object*);
lean_object* l_Lean_Parser_mkParserOfConstantUnsafe___closed__4;
size_t l_Lean_Name_hash(lean_object*);
lean_object* l_Lean_Parser_addToken(lean_object*, lean_object*);
extern lean_object* l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
lean_object* l_Nat_repr(lean_object*);
extern lean_object* l_Char_HasRepr___closed__1;
lean_object* l_Lean_Parser_mkBuiltinSyntaxNodeKindSetRef(lean_object*);
@ -238,7 +235,6 @@ lean_object* l_Lean_Parser_sepByFn___boxed(lean_object*, lean_object*, lean_obje
lean_object* l_Lean_Parser_mkBuiltinTokenTable(lean_object*);
lean_object* l_Lean_Parser_addTrailingParser(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_ConstantInfo_type(lean_object*);
lean_object* l_Lean_Parser_declareBuiltinParser___closed__6;
lean_object* l_Lean_Parser_trailingNodeFn(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_addBuiltinLeadingParser(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_mkParserExtension___closed__7;
@ -276,7 +272,6 @@ lean_object* l_Lean_Parser_tryFn(lean_object*, lean_object*, lean_object*);
uint8_t l_Lean_Parser_isParserCategory(lean_object*, lean_object*);
uint8_t l_USize_decLe(size_t, size_t);
extern lean_object* l_Lean_registerTagAttribute___lambda__4___closed__5;
lean_object* l_Lean_mkApp(lean_object*, lean_object*);
lean_object* l_Std_PersistentHashMap_containsAtAux___main___at_Lean_Parser_isValidSyntaxNodeKind___spec__3___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_categoryParser(lean_object*, lean_object*);
lean_object* l_Lean_Environment_addAndCompile(lean_object*, lean_object*, lean_object*);
@ -7918,36 +7913,6 @@ return x_3;
lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l___private_Lean_Compiler_InitAttr_2__isUnitType___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_declareBuiltinParser___closed__3;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_KeyedDeclsAttribute_declareBuiltin___rarg___closed__4;
x_2 = l_Lean_Parser_declareBuiltinParser___closed__4;
x_3 = l_Lean_mkApp(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_declareBuiltinParser___closed__6() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("failed to emit registration code for builtin parser '");
return x_1;
@ -7974,7 +7939,7 @@ x_16 = lean_array_push(x_15, x_12);
x_17 = lean_unsigned_to_nat(0u);
x_18 = l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(x_16, x_16, x_17, x_9);
lean_dec(x_16);
x_19 = l_Lean_Parser_declareBuiltinParser___closed__5;
x_19 = l_Lean_KeyedDeclsAttribute_declareBuiltin___rarg___closed__6;
lean_inc(x_7);
x_20 = lean_alloc_ctor(0, 3, 0);
lean_ctor_set(x_20, 0, x_7);
@ -7999,7 +7964,7 @@ lean_dec(x_26);
lean_dec(x_7);
x_27 = l_Lean_Name_toString___closed__1;
x_28 = l_Lean_Name_toStringWithSep___main(x_27, x_4);
x_29 = l_Lean_Parser_declareBuiltinParser___closed__6;
x_29 = l_Lean_Parser_declareBuiltinParser___closed__3;
x_30 = lean_string_append(x_29, x_28);
lean_dec(x_28);
x_31 = l_Char_HasRepr___closed__1;
@ -9368,12 +9333,6 @@ l_Lean_Parser_declareBuiltinParser___closed__2 = _init_l_Lean_Parser_declareBuil
lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__2);
l_Lean_Parser_declareBuiltinParser___closed__3 = _init_l_Lean_Parser_declareBuiltinParser___closed__3();
lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__3);
l_Lean_Parser_declareBuiltinParser___closed__4 = _init_l_Lean_Parser_declareBuiltinParser___closed__4();
lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__4);
l_Lean_Parser_declareBuiltinParser___closed__5 = _init_l_Lean_Parser_declareBuiltinParser___closed__5();
lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__5);
l_Lean_Parser_declareBuiltinParser___closed__6 = _init_l_Lean_Parser_declareBuiltinParser___closed__6();
lean_mark_persistent(l_Lean_Parser_declareBuiltinParser___closed__6);
l_Lean_Parser_declareLeadingBuiltinParser___closed__1 = _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__1();
lean_mark_persistent(l_Lean_Parser_declareLeadingBuiltinParser___closed__1);
l_Lean_Parser_declareLeadingBuiltinParser___closed__2 = _init_l_Lean_Parser_declareLeadingBuiltinParser___closed__2();

View file

@ -65,6 +65,7 @@ lean_object* l_Lean_Parser_Tactic_inductionAlts_parenthesizer___lambda__1___clos
lean_object* l_Lean_Parser_Tactic_traceState_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__5;
extern lean_object* l_Lean_nullKind;
extern lean_object* l_Lean_mkThunk___closed__1;
lean_object* l_Lean_Parser_Tactic_nestedTacticBlockCurly___closed__2;
lean_object* l_Lean_Parser_Tactic_intros___elambda__1___closed__3;
lean_object* l_Lean_Parser_Tactic_orelse___closed__1;
@ -527,7 +528,6 @@ lean_object* l_Lean_Parser_manyAux___main___at_Lean_Parser_Tactic_intros___elamb
lean_object* l_Lean_Parser_Tactic_failIfSuccess___elambda__1___closed__6;
lean_object* l_Lean_Parser_Tactic_injection___elambda__1___closed__4;
lean_object* l_Lean_Parser_Tactic_intros___closed__4;
extern lean_object* l_Lean_Meta_mkAuxName___closed__1;
lean_object* l_Lean_Parser_Tactic_cases___elambda__1___closed__5;
lean_object* l_Lean_Parser_sepBy1Info(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Tactic_withAlts_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*);
@ -909,7 +909,7 @@ lean_inc(x_7);
x_8 = l_Array_back___at_Lean_Syntax_Traverser_up___spec__2(x_7);
lean_dec(x_7);
x_9 = l_Lean_Parser_ParserState_popSyntax(x_6);
x_10 = l_Lean_Meta_mkAuxName___closed__1;
x_10 = l_Lean_mkThunk___closed__1;
x_11 = l_Lean_mkIdentFrom(x_8, x_10);
lean_dec(x_8);
x_12 = l_Lean_Parser_ParserState_pushSyntax(x_9, x_11);

View file

@ -425,7 +425,6 @@ lean_object* l_Lean_Parser_Term_doPat___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_anonymousCtor___closed__8;
lean_object* l_Lean_Parser_Term_dollarProj___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_doPat;
lean_object* l_Lean_Parser_Term_proj___elambda__1___closed__4;
lean_object* l_Lean_Parser_Term_sort___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_PrettyPrinter_Parenthesizer_tacticParser_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_heq___elambda__1___closed__5;
@ -506,6 +505,7 @@ lean_object* l_Lean_Parser_Term_forall_parenthesizer___closed__4;
lean_object* l_Lean_Parser_Term_matchAlts___closed__6;
lean_object* l_Lean_Parser_Term_liftMethod___elambda__1(lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_fun_parenthesizer___closed__8;
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_18__processNonVariable___closed__1;
lean_object* l_Lean_Parser_Term_namedArgument___elambda__1___closed__1;
lean_object* l_Lean_Parser_Term_nativeDecide_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_namedArgument___closed__3;
@ -541,7 +541,6 @@ lean_object* l_Lean_Parser_Term_bnot___closed__3;
lean_object* l_Lean_Parser_Term_arrayRef___closed__4;
lean_object* l_Lean_Parser_Term_parser_x21___closed__3;
lean_object* l_Lean_Parser_Term_parser_x21___elambda__1___closed__2;
extern lean_object* l_Lean_Meta_evalNat___main___closed__10;
lean_object* l_Lean_Parser_Term_not___elambda__1___closed__3;
lean_object* l_Lean_Parser_Term_cdot___closed__4;
lean_object* l_Lean_Parser_Term_type_parenthesizer___closed__7;
@ -563,12 +562,12 @@ lean_object* l___regBuiltin_Lean_Parser_Term_nomatch_parenthesizer(lean_object*)
lean_object* l_Lean_Parser_Term_listLit___closed__2;
lean_object* l_Lean_Parser_Term_andthen_parenthesizer___closed__4;
lean_object* l_Lean_Parser_Term_band___elambda__1(lean_object*, lean_object*);
extern lean_object* l___private_Lean_Meta_EqnCompiler_DepElim_19__processNonVariable___closed__1;
lean_object* l_Lean_Parser_ParserState_mkTrailingNode(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_seqRight___elambda__1___closed__2;
lean_object* l_Lean_Parser_Term_eq_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_structInstLVal_parenthesizer___closed__3;
lean_object* l_Lean_Parser_Term_prop___elambda__1___closed__6;
extern lean_object* l_Lean_Expr_ctorName___closed__4;
lean_object* l___regBuiltinParser_Lean_Parser_Term_let_x21(lean_object*);
lean_object* l_Lean_Parser_Term_let___elambda__1___closed__7;
lean_object* l_Lean_Parser_Term_suffices_parenthesizer___closed__2;
@ -2237,6 +2236,7 @@ lean_object* l_Lean_Parser_Term_borrowed___closed__3;
lean_object* l_Lean_Parser_Term_match___elambda__1___closed__9;
lean_object* l___regBuiltin_Lean_Parser_Term_equiv_parenthesizer(lean_object*);
lean_object* l_Lean_Parser_Term_anonymousCtor___elambda__1___closed__7;
extern lean_object* l_Lean_Meta_evalNat___main___closed__9;
lean_object* l_Lean_Parser_Term_depArrow___closed__6;
lean_object* l_Lean_Parser_Term_doPat_parenthesizer___closed__4;
lean_object* l_Lean_Parser_Term_sorry_parenthesizer___closed__2;
@ -2744,6 +2744,7 @@ lean_object* l_Lean_Parser_Term_if_parenthesizer___closed__2;
lean_object* l___regBuiltinParser_Lean_Parser_Term_hole(lean_object*);
lean_object* l_Lean_Parser_Term_iff___closed__2;
lean_object* l_Lean_Parser_Term_orelse___closed__4;
extern lean_object* l_Lean_Expr_ctorName___closed__11;
lean_object* l_Lean_Parser_Term_parenSpecial_parenthesizer___closed__1;
lean_object* l_Lean_Parser_Term_paren_parenthesizer___closed__4;
lean_object* l_Lean_Parser_Term_if___elambda__1___closed__12;
@ -2761,7 +2762,6 @@ lean_object* l___regBuiltin_Lean_Parser_Term_fun_parenthesizer___closed__1;
lean_object* l_Lean_Parser_Term_prop_parenthesizer(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_Parser_Term_map___elambda__1___closed__2;
lean_object* l___private_Lean_Parser_Basic_2__sepByFnAux___main___at_Lean_Parser_Term_subst___elambda__1___spec__2___closed__2;
lean_object* l_Lean_Parser_Term_sort___elambda__1___closed__9;
lean_object* l___regBuiltinParser_Lean_Parser_Term_gt(lean_object*);
lean_object* l___regBuiltin_Lean_Parser_Term_append_parenthesizer(lean_object*);
lean_object* l___regBuiltin_Lean_Parser_Term_bnot_parenthesizer(lean_object*);
@ -7971,43 +7971,35 @@ return x_5;
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("sort");
return x_1;
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l_Lean_Expr_ctorName___closed__4;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_1 = l_Lean_Parser_Term_sort___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_Term_sort___elambda__1___closed__4() {
lean_object* _init_l_Lean_Parser_Term_sort___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_sort___elambda__1___closed__1;
x_2 = l_Lean_Parser_Term_sort___elambda__1___closed__3;
x_1 = l_Lean_Expr_ctorName___closed__4;
x_2 = l_Lean_Parser_Term_sort___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_Term_sort___elambda__1___closed__5() {
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__4() {
_start:
{
lean_object* x_1;
@ -8015,21 +8007,31 @@ x_1 = lean_mk_string("Sort");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__6() {
lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__5;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__4;
x_2 = l_String_trim(x_1);
return x_2;
}
}
lean_object* _init_l_Lean_Parser_Term_sort___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_Term_sort___elambda__1___closed__5;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_sort___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_Term_sort___elambda__1___closed__6;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__6;
x_2 = l_Char_HasRepr___closed__1;
x_3 = lean_string_append(x_1, x_2);
return x_3;
}
@ -8038,18 +8040,8 @@ lean_object* _init_l_Lean_Parser_Term_sort___elambda__1___closed__8() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_sort___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* _init_l_Lean_Parser_Term_sort___elambda__1___closed__9() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_2 = l_Lean_Parser_Term_sort___elambda__1___closed__7;
x_3 = lean_alloc_ctor(1, 2, 0);
lean_ctor_set(x_3, 0, x_2);
lean_ctor_set(x_3, 1, x_1);
@ -8060,7 +8052,7 @@ lean_object* l_Lean_Parser_Term_sort___elambda__1(lean_object* x_1, lean_object*
_start:
{
lean_object* x_3; lean_object* x_4; uint8_t x_5;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__4;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__3;
x_4 = lean_ctor_get(x_3, 1);
lean_inc(x_4);
lean_inc(x_2);
@ -8100,13 +8092,13 @@ lean_object* x_71; lean_object* x_72; uint8_t x_73;
x_71 = lean_ctor_get(x_70, 1);
lean_inc(x_71);
lean_dec(x_70);
x_72 = l_Lean_Parser_Term_sort___elambda__1___closed__6;
x_72 = l_Lean_Parser_Term_sort___elambda__1___closed__5;
x_73 = lean_string_dec_eq(x_71, x_72);
lean_dec(x_71);
if (x_73 == 0)
{
lean_object* x_74; lean_object* x_75;
x_74 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_74 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_75 = l_Lean_Parser_ParserState_mkErrorsAt(x_67, x_74, x_66);
x_11 = x_75;
goto block_65;
@ -8122,7 +8114,7 @@ else
{
lean_object* x_76; lean_object* x_77;
lean_dec(x_70);
x_76 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_76 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_77 = l_Lean_Parser_ParserState_mkErrorsAt(x_67, x_76, x_66);
x_11 = x_77;
goto block_65;
@ -8132,7 +8124,7 @@ else
{
lean_object* x_78; lean_object* x_79;
lean_dec(x_68);
x_78 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_78 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_79 = l_Lean_Parser_ParserState_mkErrorsAt(x_67, x_78, x_66);
x_11 = x_79;
goto block_65;
@ -8176,7 +8168,7 @@ lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29;
lean_dec(x_15);
x_26 = l_Lean_nullKind;
x_27 = l_Lean_Parser_ParserState_mkNode(x_24, x_26, x_14);
x_28 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_28 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_29 = l_Lean_Parser_ParserState_mkNode(x_27, x_28, x_10);
return x_29;
}
@ -8194,7 +8186,7 @@ lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
lean_dec(x_15);
x_32 = l_Lean_nullKind;
x_33 = l_Lean_Parser_ParserState_mkNode(x_24, x_32, x_14);
x_34 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_34 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_35 = l_Lean_Parser_ParserState_mkNode(x_33, x_34, x_10);
return x_35;
}
@ -8204,7 +8196,7 @@ lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39; lean
x_36 = l_Lean_Parser_ParserState_restore(x_24, x_14, x_15);
x_37 = l_Lean_nullKind;
x_38 = l_Lean_Parser_ParserState_mkNode(x_36, x_37, x_14);
x_39 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_39 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_40 = l_Lean_Parser_ParserState_mkNode(x_38, x_39, x_10);
return x_40;
}
@ -8225,7 +8217,7 @@ lean_object* x_43; lean_object* x_44; lean_object* x_45; lean_object* x_46;
lean_dec(x_15);
x_43 = l_Lean_nullKind;
x_44 = l_Lean_Parser_ParserState_mkNode(x_20, x_43, x_14);
x_45 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_45 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_46 = l_Lean_Parser_ParserState_mkNode(x_44, x_45, x_10);
return x_46;
}
@ -8235,7 +8227,7 @@ lean_object* x_47; lean_object* x_48; lean_object* x_49; lean_object* x_50; lean
x_47 = l_Lean_Parser_ParserState_restore(x_20, x_14, x_15);
x_48 = l_Lean_nullKind;
x_49 = l_Lean_Parser_ParserState_mkNode(x_47, x_48, x_14);
x_50 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_50 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_51 = l_Lean_Parser_ParserState_mkNode(x_49, x_50, x_10);
return x_51;
}
@ -8256,7 +8248,7 @@ lean_object* x_54; lean_object* x_55; lean_object* x_56; lean_object* x_57;
lean_dec(x_15);
x_54 = l_Lean_nullKind;
x_55 = l_Lean_Parser_ParserState_mkNode(x_17, x_54, x_14);
x_56 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_56 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_57 = l_Lean_Parser_ParserState_mkNode(x_55, x_56, x_10);
return x_57;
}
@ -8266,7 +8258,7 @@ lean_object* x_58; lean_object* x_59; lean_object* x_60; lean_object* x_61; lean
x_58 = l_Lean_Parser_ParserState_restore(x_17, x_14, x_15);
x_59 = l_Lean_nullKind;
x_60 = l_Lean_Parser_ParserState_mkNode(x_58, x_59, x_14);
x_61 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_61 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_62 = l_Lean_Parser_ParserState_mkNode(x_60, x_61, x_10);
return x_62;
}
@ -8277,7 +8269,7 @@ else
lean_object* x_63; lean_object* x_64;
lean_dec(x_12);
lean_dec(x_1);
x_63 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_63 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_64 = l_Lean_Parser_ParserState_mkNode(x_11, x_63, x_10);
return x_64;
}
@ -8364,13 +8356,13 @@ lean_object* x_162; lean_object* x_163; uint8_t x_164;
x_162 = lean_ctor_get(x_161, 1);
lean_inc(x_162);
lean_dec(x_161);
x_163 = l_Lean_Parser_Term_sort___elambda__1___closed__6;
x_163 = l_Lean_Parser_Term_sort___elambda__1___closed__5;
x_164 = lean_string_dec_eq(x_162, x_163);
lean_dec(x_162);
if (x_164 == 0)
{
lean_object* x_165; lean_object* x_166;
x_165 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_165 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_166 = l_Lean_Parser_ParserState_mkErrorsAt(x_158, x_165, x_157);
x_94 = x_166;
goto block_156;
@ -8386,7 +8378,7 @@ else
{
lean_object* x_167; lean_object* x_168;
lean_dec(x_161);
x_167 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_167 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_168 = l_Lean_Parser_ParserState_mkErrorsAt(x_158, x_167, x_157);
x_94 = x_168;
goto block_156;
@ -8396,7 +8388,7 @@ else
{
lean_object* x_169; lean_object* x_170;
lean_dec(x_159);
x_169 = l_Lean_Parser_Term_sort___elambda__1___closed__9;
x_169 = l_Lean_Parser_Term_sort___elambda__1___closed__8;
x_170 = l_Lean_Parser_ParserState_mkErrorsAt(x_158, x_169, x_157);
x_94 = x_170;
goto block_156;
@ -8440,7 +8432,7 @@ lean_object* x_109; lean_object* x_110; lean_object* x_111; lean_object* x_112;
lean_dec(x_98);
x_109 = l_Lean_nullKind;
x_110 = l_Lean_Parser_ParserState_mkNode(x_107, x_109, x_97);
x_111 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_111 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_112 = l_Lean_Parser_ParserState_mkNode(x_110, x_111, x_93);
x_113 = l_Lean_Parser_mergeOrElseErrors(x_112, x_85, x_82);
lean_dec(x_82);
@ -8460,7 +8452,7 @@ lean_object* x_116; lean_object* x_117; lean_object* x_118; lean_object* x_119;
lean_dec(x_98);
x_116 = l_Lean_nullKind;
x_117 = l_Lean_Parser_ParserState_mkNode(x_107, x_116, x_97);
x_118 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_118 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_119 = l_Lean_Parser_ParserState_mkNode(x_117, x_118, x_93);
x_120 = l_Lean_Parser_mergeOrElseErrors(x_119, x_85, x_82);
lean_dec(x_82);
@ -8472,7 +8464,7 @@ lean_object* x_121; lean_object* x_122; lean_object* x_123; lean_object* x_124;
x_121 = l_Lean_Parser_ParserState_restore(x_107, x_97, x_98);
x_122 = l_Lean_nullKind;
x_123 = l_Lean_Parser_ParserState_mkNode(x_121, x_122, x_97);
x_124 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_124 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_125 = l_Lean_Parser_ParserState_mkNode(x_123, x_124, x_93);
x_126 = l_Lean_Parser_mergeOrElseErrors(x_125, x_85, x_82);
lean_dec(x_82);
@ -8495,7 +8487,7 @@ lean_object* x_129; lean_object* x_130; lean_object* x_131; lean_object* x_132;
lean_dec(x_98);
x_129 = l_Lean_nullKind;
x_130 = l_Lean_Parser_ParserState_mkNode(x_103, x_129, x_97);
x_131 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_131 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_132 = l_Lean_Parser_ParserState_mkNode(x_130, x_131, x_93);
x_133 = l_Lean_Parser_mergeOrElseErrors(x_132, x_85, x_82);
lean_dec(x_82);
@ -8507,7 +8499,7 @@ lean_object* x_134; lean_object* x_135; lean_object* x_136; lean_object* x_137;
x_134 = l_Lean_Parser_ParserState_restore(x_103, x_97, x_98);
x_135 = l_Lean_nullKind;
x_136 = l_Lean_Parser_ParserState_mkNode(x_134, x_135, x_97);
x_137 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_137 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_138 = l_Lean_Parser_ParserState_mkNode(x_136, x_137, x_93);
x_139 = l_Lean_Parser_mergeOrElseErrors(x_138, x_85, x_82);
lean_dec(x_82);
@ -8530,7 +8522,7 @@ lean_object* x_142; lean_object* x_143; lean_object* x_144; lean_object* x_145;
lean_dec(x_98);
x_142 = l_Lean_nullKind;
x_143 = l_Lean_Parser_ParserState_mkNode(x_100, x_142, x_97);
x_144 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_144 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_145 = l_Lean_Parser_ParserState_mkNode(x_143, x_144, x_93);
x_146 = l_Lean_Parser_mergeOrElseErrors(x_145, x_85, x_82);
lean_dec(x_82);
@ -8542,7 +8534,7 @@ lean_object* x_147; lean_object* x_148; lean_object* x_149; lean_object* x_150;
x_147 = l_Lean_Parser_ParserState_restore(x_100, x_97, x_98);
x_148 = l_Lean_nullKind;
x_149 = l_Lean_Parser_ParserState_mkNode(x_147, x_148, x_97);
x_150 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_150 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_151 = l_Lean_Parser_ParserState_mkNode(x_149, x_150, x_93);
x_152 = l_Lean_Parser_mergeOrElseErrors(x_151, x_85, x_82);
lean_dec(x_82);
@ -8555,7 +8547,7 @@ else
lean_object* x_153; lean_object* x_154; lean_object* x_155;
lean_dec(x_95);
lean_dec(x_1);
x_153 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_153 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_154 = l_Lean_Parser_ParserState_mkNode(x_94, x_153, x_93);
x_155 = l_Lean_Parser_mergeOrElseErrors(x_154, x_85, x_82);
lean_dec(x_82);
@ -8581,7 +8573,7 @@ lean_object* _init_l_Lean_Parser_Term_sort___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__6;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__5;
x_2 = l_Lean_Parser_symbolInfo(x_1);
return x_2;
}
@ -8600,7 +8592,7 @@ lean_object* _init_l_Lean_Parser_Term_sort___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_2 = l_Lean_Parser_Term_sort___closed__2;
x_3 = l_Lean_Parser_nodeInfo(x_1, x_2);
return x_3;
@ -8620,7 +8612,7 @@ lean_object* _init_l_Lean_Parser_Term_sort___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__4;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__3;
x_2 = lean_ctor_get(x_1, 0);
lean_inc(x_2);
x_3 = l_Lean_Parser_Term_sort___closed__4;
@ -8661,7 +8653,7 @@ _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_termParser___closed__2;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_4 = 1;
x_5 = l_Lean_Parser_Term_sort;
x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
@ -8672,7 +8664,7 @@ lean_object* _init_l_Lean_Parser_Term_sort_parenthesizer___closed__1() {
_start:
{
lean_object* x_1; uint8_t x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__3;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_2 = 1;
x_3 = lean_box(x_2);
x_4 = lean_alloc_closure((void*)(l_Lean_Parser_mkAntiquot_parenthesizer___rarg___boxed), 6, 2);
@ -8685,7 +8677,7 @@ lean_object* _init_l_Lean_Parser_Term_sort_parenthesizer___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_1 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_2 = lean_unsigned_to_nat(1024u);
x_3 = l_Lean_Parser_Term_type_parenthesizer___closed__7;
x_4 = lean_alloc_closure((void*)(l_Lean_PrettyPrinter_Parenthesizer_leadingNode_parenthesizer), 7, 3);
@ -8718,7 +8710,7 @@ _start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_PrettyPrinter_parenthesizerAttribute;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_sort___elambda__1___closed__1;
x_4 = l___regBuiltin_Lean_Parser_Term_sort_parenthesizer___closed__1;
x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1);
return x_5;
@ -38010,7 +38002,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_19__processNonVariable___closed__1;
x_2 = l___private_Lean_Meta_EqnCompiler_DepElim_18__processNonVariable___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -38029,7 +38021,7 @@ lean_object* _init_l_Lean_Parser_Term_match___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2; uint8_t x_3; lean_object* x_4;
x_1 = l___private_Lean_Meta_EqnCompiler_DepElim_19__processNonVariable___closed__1;
x_1 = l___private_Lean_Meta_EqnCompiler_DepElim_18__processNonVariable___closed__1;
x_2 = l_Lean_Parser_Term_match___elambda__1___closed__2;
x_3 = 1;
x_4 = l_Lean_Parser_mkAntiquot(x_1, x_2, x_3);
@ -54141,22 +54133,14 @@ return x_5;
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("proj");
return x_1;
}
}
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_2 = l_Lean_Expr_ctorName___closed__11;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__3() {
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
@ -54166,7 +54150,7 @@ x_3 = lean_string_append(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__4() {
lean_object* _init_l_Lean_Parser_Term_proj___elambda__1___closed__3() {
_start:
{
lean_object* x_1; lean_object* x_2;
@ -54202,7 +54186,7 @@ if (x_45 == 0)
{
lean_object* x_46; lean_object* x_47;
lean_dec(x_9);
x_46 = l_Lean_Parser_Term_proj___elambda__1___closed__3;
x_46 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_47 = l_Lean_Parser_ParserState_mkError(x_6, x_46);
x_11 = x_47;
goto block_43;
@ -54216,7 +54200,7 @@ x_49 = lean_ctor_get(x_48, 0);
lean_inc(x_49);
lean_dec(x_48);
x_50 = l_Lean_Parser_manyAux___main___at_Lean_Parser_Term_structInstLVal___elambda__1___spec__1___closed__1;
x_51 = l_Lean_Parser_Term_proj___elambda__1___closed__3;
x_51 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_52 = lean_unsigned_to_nat(0u);
x_53 = l_Lean_Parser_strAux___main(x_50, x_51, x_52, x_1, x_6);
x_54 = lean_ctor_get(x_53, 3);
@ -54230,7 +54214,7 @@ x_55 = lean_alloc_ctor(0, 3, 0);
lean_ctor_set(x_55, 0, x_49);
lean_ctor_set(x_55, 1, x_9);
lean_ctor_set(x_55, 2, x_9);
x_56 = l_Lean_Parser_Term_proj___elambda__1___closed__4;
x_56 = l_Lean_Parser_Term_proj___elambda__1___closed__3;
x_57 = lean_nat_add(x_9, x_56);
lean_inc(x_57);
x_58 = lean_alloc_ctor(0, 3, 0);
@ -54339,7 +54323,7 @@ lean_object* x_18; lean_object* x_19;
lean_dec(x_15);
lean_dec(x_14);
lean_dec(x_1);
x_18 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_18 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_19 = l_Lean_Parser_ParserState_mkTrailingNode(x_16, x_18, x_10);
lean_dec(x_10);
return x_19;
@ -54361,7 +54345,7 @@ lean_dec(x_20);
lean_dec(x_15);
lean_dec(x_14);
lean_dec(x_1);
x_23 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_23 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_24 = l_Lean_Parser_ParserState_mkTrailingNode(x_16, x_23, x_10);
lean_dec(x_10);
return x_24;
@ -54375,7 +54359,7 @@ lean_dec(x_14);
x_26 = l_Lean_Parser_ident___elambda__1(x_1, x_25);
x_27 = l_Lean_Parser_mergeOrElseErrors(x_26, x_20, x_15);
lean_dec(x_15);
x_28 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_28 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_29 = l_Lean_Parser_ParserState_mkTrailingNode(x_27, x_28, x_10);
lean_dec(x_10);
return x_29;
@ -54389,7 +54373,7 @@ lean_object* x_41; lean_object* x_42;
lean_dec(x_12);
lean_dec(x_4);
lean_dec(x_1);
x_41 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_41 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_42 = l_Lean_Parser_ParserState_mkTrailingNode(x_11, x_41, x_10);
lean_dec(x_10);
return x_42;
@ -54440,7 +54424,7 @@ lean_object* _init_l_Lean_Parser_Term_proj___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_1 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_2 = l_Lean_Parser_Term_proj___closed__3;
x_3 = l_Lean_Parser_nodeInfo(x_1, x_2);
return x_3;
@ -54489,7 +54473,7 @@ _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_termParser___closed__2;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_4 = 0;
x_5 = l_Lean_Parser_Term_proj;
x_6 = l_Lean_Parser_addBuiltinParser(x_2, x_3, x_4, x_5, x_1);
@ -54532,7 +54516,7 @@ lean_object* l_Lean_Parser_Term_proj_parenthesizer(lean_object* x_1, lean_object
_start:
{
lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8;
x_5 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_5 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_6 = lean_unsigned_to_nat(1024u);
x_7 = l_Lean_Parser_Term_proj_parenthesizer___closed__3;
x_8 = l_Lean_PrettyPrinter_Parenthesizer_trailingNode_parenthesizer(x_5, x_6, x_7, x_1, x_2, x_3, x_4);
@ -54552,7 +54536,7 @@ _start:
{
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = l_Lean_PrettyPrinter_parenthesizerAttribute;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__2;
x_3 = l_Lean_Parser_Term_proj___elambda__1___closed__1;
x_4 = l___regBuiltin_Lean_Parser_Term_proj_parenthesizer___closed__1;
x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1);
return x_5;
@ -57104,7 +57088,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_mkAppStx___closed__6;
x_2 = l_Lean_Meta_evalNat___main___closed__10;
x_2 = l_Lean_Meta_evalNat___main___closed__9;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
@ -66489,8 +66473,6 @@ l_Lean_Parser_Term_sort___elambda__1___closed__7 = _init_l_Lean_Parser_Term_sort
lean_mark_persistent(l_Lean_Parser_Term_sort___elambda__1___closed__7);
l_Lean_Parser_Term_sort___elambda__1___closed__8 = _init_l_Lean_Parser_Term_sort___elambda__1___closed__8();
lean_mark_persistent(l_Lean_Parser_Term_sort___elambda__1___closed__8);
l_Lean_Parser_Term_sort___elambda__1___closed__9 = _init_l_Lean_Parser_Term_sort___elambda__1___closed__9();
lean_mark_persistent(l_Lean_Parser_Term_sort___elambda__1___closed__9);
l_Lean_Parser_Term_sort___closed__1 = _init_l_Lean_Parser_Term_sort___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_sort___closed__1);
l_Lean_Parser_Term_sort___closed__2 = _init_l_Lean_Parser_Term_sort___closed__2();
@ -69679,8 +69661,6 @@ l_Lean_Parser_Term_proj___elambda__1___closed__2 = _init_l_Lean_Parser_Term_proj
lean_mark_persistent(l_Lean_Parser_Term_proj___elambda__1___closed__2);
l_Lean_Parser_Term_proj___elambda__1___closed__3 = _init_l_Lean_Parser_Term_proj___elambda__1___closed__3();
lean_mark_persistent(l_Lean_Parser_Term_proj___elambda__1___closed__3);
l_Lean_Parser_Term_proj___elambda__1___closed__4 = _init_l_Lean_Parser_Term_proj___elambda__1___closed__4();
lean_mark_persistent(l_Lean_Parser_Term_proj___elambda__1___closed__4);
l_Lean_Parser_Term_proj___closed__1 = _init_l_Lean_Parser_Term_proj___closed__1();
lean_mark_persistent(l_Lean_Parser_Term_proj___closed__1);
l_Lean_Parser_Term_proj___closed__2 = _init_l_Lean_Parser_Term_proj___closed__2();

View file

@ -51,6 +51,7 @@ lean_object* l_Nat_forMAux___main___at_Lean_PrettyPrinter_Parenthesizer_category
lean_object* l_Lean_PrettyPrinter_parenthesizerAttribute___closed__1;
lean_object* l_unreachable_x21___rarg(lean_object*);
extern lean_object* l_Lean_nullKind;
extern lean_object* l_Lean_mkThunk___closed__1;
lean_object* l_Array_iterateM_u2082Aux___main___at_Lean_PrettyPrinter_Parenthesizer_compileParserBody___main___spec__9(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Expr_3__getAppArgsAux___main(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_PrettyPrinter_Parenthesizer_compileParserBody___main___closed__9;
@ -437,7 +438,6 @@ lean_object* l_Lean_PrettyPrinter_mkParenthesizerAttribute(lean_object*);
lean_object* l_Lean_PrettyPrinter_mkParenthesizerAttribute___closed__1;
lean_object* l_Lean_PrettyPrinter_Parenthesizer_checkNoImmediateColon_parenthesizer(lean_object*);
extern lean_object* l_Lean_nullKind___closed__2;
extern lean_object* l_Lean_Meta_mkAuxName___closed__1;
lean_object* l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__5;
lean_object* l_Lean_PrettyPrinter_Parenthesizer_compileParenthesizerDescr___main___closed__14;
lean_object* l_Lean_Syntax_Traverser_fromSyntax(lean_object*);
@ -9440,7 +9440,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -9944,7 +9944,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -10430,7 +10430,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -10916,7 +10916,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -11402,7 +11402,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -11888,7 +11888,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -12374,7 +12374,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -12860,7 +12860,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -13346,7 +13346,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -13832,7 +13832,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;
@ -14318,7 +14318,7 @@ lean_inc(x_20);
x_21 = lean_ctor_get(x_19, 1);
lean_inc(x_21);
lean_dec(x_19);
x_22 = l_Lean_Meta_mkAuxName___closed__1;
x_22 = l_Lean_mkThunk___closed__1;
x_23 = 0;
x_24 = l_Lean_mkForall(x_22, x_23, x_20, x_7);
x_5 = x_13;

View file

@ -14,11 +14,10 @@
extern "C" {
#endif
lean_object* l_Lean_nameToExpr___closed__3;
lean_object* l_Lean_unitToExpr___closed__3;
lean_object* l_Lean_arrayToExpr___rarg(lean_object*);
lean_object* l_Lean_boolToExpr;
lean_object* l_Lean_unitToExpr___lambda__1___closed__2;
lean_object* l_Lean_unitToExpr___lambda__1___closed__4;
extern lean_object* l_Lean_mkThunkType___closed__2;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__8;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__4;
lean_object* l_Lean_unitToExpr___closed__2;
@ -33,7 +32,6 @@ lean_object* l_Lean_Name_toExprAux___main___closed__1;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__6;
lean_object* l_Lean_arrayToExpr___rarg___lambda__1___closed__3;
lean_object* l_Lean_charToExpr;
lean_object* l_Lean_unitToExpr___lambda__1___closed__5;
lean_object* l_Lean_optionToExpr___rarg___closed__1;
extern lean_object* l_Lean_Literal_type___closed__3;
lean_object* l_Lean_nameToExpr___closed__2;
@ -44,9 +42,9 @@ lean_object* l_Lean_Name_toExprAux___main___closed__2;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__1;
lean_object* l_Lean_prodToExpr(lean_object*, lean_object*);
extern lean_object* l_Nat_HasOfNat___closed__1;
extern lean_object* l_Lean_mkThunkType___closed__3;
lean_object* l_Lean_listToExpr___rarg___closed__4;
extern lean_object* l_Lean_levelZero;
lean_object* l_Lean_charToExpr___lambda__1___closed__3;
lean_object* l_Lean_unitToExpr___lambda__1(lean_object*);
lean_object* l_Lean_Name_toExprAux___main___closed__6;
lean_object* l_Lean_nameToExpr;
@ -54,7 +52,6 @@ lean_object* l_Lean_List_toExprAux___main(lean_object*);
lean_object* l_Lean_boolToExpr___lambda__1___closed__3;
lean_object* l_Lean_boolToExpr___closed__3;
extern lean_object* l_Lean_Literal_type___closed__6;
lean_object* l_Lean_charToExpr___lambda__1___closed__5;
lean_object* l_Lean_prodToExpr___rarg(lean_object*, lean_object*);
lean_object* l_Lean_List_toExprAux___main___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_listToExpr___rarg___closed__5;
@ -74,7 +71,6 @@ lean_object* l_Lean_strToExpr___closed__2;
lean_object* l_Lean_charToExpr___lambda__1___closed__1;
lean_object* l_Lean_charToExpr___lambda__1___boxed(lean_object*);
lean_object* l_Lean_arrayToExpr(lean_object*);
lean_object* l_Lean_charToExpr___lambda__1___closed__2;
lean_object* l_Lean_Name_toExprAux___main___closed__7;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__3;
lean_object* l_Lean_prodToExpr___rarg___lambda__1___closed__1;
@ -116,7 +112,6 @@ lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__2;
lean_object* l_Lean_exprToExpr___closed__1;
lean_object* l_Lean_arrayToExpr___rarg___lambda__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_arrayToExpr___rarg___lambda__1___closed__2;
lean_object* l_Lean_charToExpr___lambda__1___closed__4;
lean_object* l_Lean_arrayToExpr___rarg___lambda__1(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_mkNatLit(lean_object*);
lean_object* l_Lean_mkStrLit(lean_object*);
@ -125,8 +120,10 @@ lean_object* l_Lean_exprToExpr;
lean_object* l_Lean_boolToExpr___lambda__1___closed__1;
lean_object* l_Lean_arrayToExpr___rarg___closed__2;
lean_object* l_Lean_optionToExpr___rarg___lambda__1___closed__7;
extern lean_object* l_Lean_Expr_isCharLit___closed__2;
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_List_toExprAux(lean_object*);
extern lean_object* l_Lean_Expr_isCharLit___closed__4;
lean_object* l_Lean_strToExpr;
extern lean_object* l_Lean_mkAppStx___closed__2;
lean_object* l_Lean_List_toExprAux___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
@ -342,45 +339,9 @@ return x_3;
lean_object* _init_l_Lean_charToExpr___lambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Char");
return x_1;
}
}
lean_object* _init_l_Lean_charToExpr___lambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_charToExpr___lambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_charToExpr___lambda__1___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("ofNat");
return x_1;
}
}
lean_object* _init_l_Lean_charToExpr___lambda__1___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_charToExpr___lambda__1___closed__2;
x_2 = l_Lean_charToExpr___lambda__1___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_charToExpr___lambda__1___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_charToExpr___lambda__1___closed__4;
x_2 = l_Lean_Expr_isCharLit___closed__4;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
@ -391,7 +352,7 @@ _start:
lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
x_2 = lean_uint32_to_nat(x_1);
x_3 = l_Lean_mkNatLit(x_2);
x_4 = l_Lean_charToExpr___lambda__1___closed__5;
x_4 = l_Lean_charToExpr___lambda__1___closed__1;
x_5 = l_Lean_mkApp(x_4, x_3);
return x_5;
}
@ -401,7 +362,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_charToExpr___lambda__1___closed__2;
x_2 = l_Lean_Expr_isCharLit___closed__2;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
@ -476,7 +437,7 @@ lean_object* _init_l_Lean_unitToExpr___lambda__1___closed__1() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("Unit");
x_1 = lean_mk_string("unit");
return x_1;
}
}
@ -484,7 +445,7 @@ lean_object* _init_l_Lean_unitToExpr___lambda__1___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_1 = l_Lean_mkThunkType___closed__2;
x_2 = l_Lean_unitToExpr___lambda__1___closed__1;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
@ -493,42 +454,6 @@ return x_3;
lean_object* _init_l_Lean_unitToExpr___lambda__1___closed__3() {
_start:
{
lean_object* x_1;
x_1 = lean_mk_string("unit");
return x_1;
}
}
lean_object* _init_l_Lean_unitToExpr___lambda__1___closed__4() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_unitToExpr___lambda__1___closed__2;
x_2 = l_Lean_unitToExpr___lambda__1___closed__3;
x_3 = lean_name_mk_string(x_1, x_2);
return x_3;
}
}
lean_object* _init_l_Lean_unitToExpr___lambda__1___closed__5() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_unitToExpr___lambda__1___closed__4;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_unitToExpr___lambda__1(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Lean_unitToExpr___lambda__1___closed__5;
return x_2;
}
}
lean_object* _init_l_Lean_unitToExpr___closed__1() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_unitToExpr___lambda__1___closed__2;
@ -536,7 +461,15 @@ x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}
}
lean_object* _init_l_Lean_unitToExpr___closed__2() {
lean_object* l_Lean_unitToExpr___lambda__1(lean_object* x_1) {
_start:
{
lean_object* x_2;
x_2 = l_Lean_unitToExpr___lambda__1___closed__3;
return x_2;
}
}
lean_object* _init_l_Lean_unitToExpr___closed__1() {
_start:
{
lean_object* x_1;
@ -544,12 +477,12 @@ x_1 = lean_alloc_closure((void*)(l_Lean_unitToExpr___lambda__1___boxed), 1, 0);
return x_1;
}
}
lean_object* _init_l_Lean_unitToExpr___closed__3() {
lean_object* _init_l_Lean_unitToExpr___closed__2() {
_start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = l_Lean_unitToExpr___closed__2;
x_2 = l_Lean_unitToExpr___closed__1;
x_1 = l_Lean_unitToExpr___closed__1;
x_2 = l_Lean_mkThunkType___closed__3;
x_3 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_3, 0, x_1);
lean_ctor_set(x_3, 1, x_2);
@ -560,7 +493,7 @@ lean_object* _init_l_Lean_unitToExpr() {
_start:
{
lean_object* x_1;
x_1 = l_Lean_unitToExpr___closed__3;
x_1 = l_Lean_unitToExpr___closed__2;
return x_1;
}
}
@ -1359,14 +1292,6 @@ l_Lean_boolToExpr = _init_l_Lean_boolToExpr();
lean_mark_persistent(l_Lean_boolToExpr);
l_Lean_charToExpr___lambda__1___closed__1 = _init_l_Lean_charToExpr___lambda__1___closed__1();
lean_mark_persistent(l_Lean_charToExpr___lambda__1___closed__1);
l_Lean_charToExpr___lambda__1___closed__2 = _init_l_Lean_charToExpr___lambda__1___closed__2();
lean_mark_persistent(l_Lean_charToExpr___lambda__1___closed__2);
l_Lean_charToExpr___lambda__1___closed__3 = _init_l_Lean_charToExpr___lambda__1___closed__3();
lean_mark_persistent(l_Lean_charToExpr___lambda__1___closed__3);
l_Lean_charToExpr___lambda__1___closed__4 = _init_l_Lean_charToExpr___lambda__1___closed__4();
lean_mark_persistent(l_Lean_charToExpr___lambda__1___closed__4);
l_Lean_charToExpr___lambda__1___closed__5 = _init_l_Lean_charToExpr___lambda__1___closed__5();
lean_mark_persistent(l_Lean_charToExpr___lambda__1___closed__5);
l_Lean_charToExpr___closed__1 = _init_l_Lean_charToExpr___closed__1();
lean_mark_persistent(l_Lean_charToExpr___closed__1);
l_Lean_charToExpr___closed__2 = _init_l_Lean_charToExpr___closed__2();
@ -1387,16 +1312,10 @@ l_Lean_unitToExpr___lambda__1___closed__2 = _init_l_Lean_unitToExpr___lambda__1_
lean_mark_persistent(l_Lean_unitToExpr___lambda__1___closed__2);
l_Lean_unitToExpr___lambda__1___closed__3 = _init_l_Lean_unitToExpr___lambda__1___closed__3();
lean_mark_persistent(l_Lean_unitToExpr___lambda__1___closed__3);
l_Lean_unitToExpr___lambda__1___closed__4 = _init_l_Lean_unitToExpr___lambda__1___closed__4();
lean_mark_persistent(l_Lean_unitToExpr___lambda__1___closed__4);
l_Lean_unitToExpr___lambda__1___closed__5 = _init_l_Lean_unitToExpr___lambda__1___closed__5();
lean_mark_persistent(l_Lean_unitToExpr___lambda__1___closed__5);
l_Lean_unitToExpr___closed__1 = _init_l_Lean_unitToExpr___closed__1();
lean_mark_persistent(l_Lean_unitToExpr___closed__1);
l_Lean_unitToExpr___closed__2 = _init_l_Lean_unitToExpr___closed__2();
lean_mark_persistent(l_Lean_unitToExpr___closed__2);
l_Lean_unitToExpr___closed__3 = _init_l_Lean_unitToExpr___closed__3();
lean_mark_persistent(l_Lean_unitToExpr___closed__3);
l_Lean_unitToExpr = _init_l_Lean_unitToExpr();
lean_mark_persistent(l_Lean_unitToExpr);
l_Lean_Name_toExprAux___main___closed__1 = _init_l_Lean_Name_toExprAux___main___closed__1();

View file

@ -24,6 +24,7 @@ extern lean_object* l_Array_empty___closed__1;
size_t l_Lean_Level_hash(lean_object*);
lean_object* lean_array_push(lean_object*, lean_object*);
lean_object* lean_array_get_size(lean_object*);
lean_object* l_Lean_CollectLevelParams_State_collect(lean_object*, lean_object*);
uint8_t l_Lean_Level_hasParam(lean_object*);
lean_object* l_Std_mkHashSetImp___rarg(lean_object*);
uint8_t l_List_elem___main___at_Lean_CollectLevelParams_visitExpr___spec__2(lean_object*, lean_object*);
@ -2542,6 +2543,14 @@ x_3 = l_Lean_CollectLevelParams_main___main(x_2, x_1);
return x_3;
}
}
lean_object* l_Lean_CollectLevelParams_State_collect(lean_object* x_1, lean_object* x_2) {
_start:
{
lean_object* x_3;
x_3 = l_Lean_CollectLevelParams_main___main(x_2, x_1);
return x_3;
}
}
lean_object* initialize_Init(lean_object*);
lean_object* initialize_Lean_Expr(lean_object*);
static bool _G_initialized = false;

View file

@ -546,12 +546,16 @@ goto _start;
}
else
{
lean_object* x_15; lean_object* x_16;
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
x_15 = l_Lean_Expr_appArg_x21(x_1);
lean_dec(x_1);
x_15 = l_List_reverse___rarg(x_2);
x_16 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_16, 0, x_15);
return x_16;
x_16 = l_List_reverse___rarg(x_2);
x_17 = lean_alloc_ctor(0, 2, 0);
lean_ctor_set(x_17, 0, x_15);
lean_ctor_set(x_17, 1, x_16);
x_18 = lean_alloc_ctor(1, 1, 0);
lean_ctor_set(x_18, 0, x_17);
return x_18;
}
}
}

View file

@ -81,7 +81,6 @@ uint8_t lean_nat_dec_eq(lean_object*, lean_object*);
lean_object* l_Lean_List_toExprAux___main___at_Lean_WHNF_toCtorIfLit___spec__1___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_reduceQuotRec___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_unfoldDefinitionAux(lean_object*);
extern lean_object* l_Lean_charToExpr___lambda__1___closed__5;
lean_object* lean_nat_sub(lean_object*, lean_object*);
lean_object* l___private_Lean_Util_WHNF_7__deltaDefinition___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Array_shrink___main___rarg(lean_object*, lean_object*);
@ -112,8 +111,8 @@ lean_object* l___private_Lean_Util_WHNF_3__getRecRuleFor___lambda__1___boxed(lea
extern lean_object* l_Lean_Literal_type___closed__2;
lean_object* l_Lean_WHNF_isRecStuck_x3f___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Util_WHNF_5__isIdRhsApp___closed__2;
extern lean_object* l_Lean_charToExpr___lambda__1___closed__1;
lean_object* l_Lean_WHNF_toCtorIfLit___closed__9;
extern lean_object* l_Lean_charToExpr___lambda__1___closed__2;
uint8_t l_Lean_Expr_isConstOf(lean_object*, lean_object*);
lean_object* l_Lean_WHNF_unfoldDefinitionAux___rarg___lambda__4___boxed(lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Util_WHNF_1__getFirstCtor___rarg___lambda__1(lean_object*, lean_object*, lean_object*);
@ -182,6 +181,7 @@ lean_object* l_Lean_WHNF_whnfCore___main___rarg___lambda__6___boxed(lean_object*
lean_object* l_Array_iterateMAux___main___at_Lean_mkAppN___spec__1(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Util_WHNF_7__deltaDefinition___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l___private_Lean_Util_WHNF_9__whnfCoreUnstuck(lean_object*);
extern lean_object* l_Lean_Expr_isCharLit___closed__2;
lean_object* l_Lean_WHNF_whnfMain___main___rarg___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
lean_object* l_Lean_WHNF_whnfCore___main(lean_object*);
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
@ -628,7 +628,7 @@ x_6 = lean_unbox_uint32(x_4);
lean_dec(x_4);
x_7 = lean_uint32_to_nat(x_6);
x_8 = l_Lean_mkNatLit(x_7);
x_9 = l_Lean_charToExpr___lambda__1___closed__5;
x_9 = l_Lean_charToExpr___lambda__1___closed__1;
x_10 = l_Lean_mkApp(x_9, x_8);
lean_inc(x_2);
x_11 = l_Lean_List_toExprAux___main___at_Lean_WHNF_toCtorIfLit___spec__1(x_1, x_2, x_5);
@ -718,7 +718,7 @@ _start:
{
lean_object* x_1; lean_object* x_2; lean_object* x_3;
x_1 = lean_box(0);
x_2 = l_Lean_charToExpr___lambda__1___closed__2;
x_2 = l_Lean_Expr_isCharLit___closed__2;
x_3 = l_Lean_mkConst(x_2, x_1);
return x_3;
}