chore: update stage0
This commit is contained in:
parent
049273afee
commit
7d8cb84834
9 changed files with 1251 additions and 727 deletions
4
stage0/src/Init/Control/Lawful.lean
generated
4
stage0/src/Init/Control/Lawful.lean
generated
|
|
@ -111,9 +111,9 @@ theorem ext [Monad m] {x y : ExceptT ε m α} (h : x.run = y.run) : x = y := by
|
|||
simp [run] at h
|
||||
assumption
|
||||
|
||||
@[simp] theorem run_pure [Monad m] : run (pure x : ExceptT ε m α) = pure (Except.ok x) := rfl
|
||||
@[simp] theorem run_pure [Monad m] (x : α) : run (pure x : ExceptT ε m α) = pure (Except.ok x) := rfl
|
||||
|
||||
@[simp] theorem run_lift [Monad m] (x : m α) : run (ExceptT.lift x : ExceptT ε m α) = (Except.ok <$> x : m (Except ε α)) := rfl
|
||||
@[simp] theorem run_lift {α β ε : Type u} [Monad m] (x : m α) : run (ExceptT.lift x : ExceptT ε m α) = (Except.ok <$> x : m (Except ε α)) := rfl
|
||||
|
||||
@[simp] theorem run_throw [Monad m] : run (throw e : ExceptT ε m β) = pure (Except.error e) := rfl
|
||||
|
||||
|
|
|
|||
3
stage0/src/Init/Core.lean
generated
3
stage0/src/Init/Core.lean
generated
|
|
@ -315,7 +315,8 @@ theorem Iff.comm : (a ↔ b) ↔ (b ↔ a) :=
|
|||
|
||||
theorem Exists.elim {α : Sort u} {p : α → Prop} {b : Prop}
|
||||
(h₁ : Exists (fun x => p x)) (h₂ : ∀ (a : α), p a → b) : b :=
|
||||
h₂ h₁.1 h₁.2
|
||||
match h₁ with
|
||||
| intro a h => h₂ a h
|
||||
|
||||
/- Decidable -/
|
||||
|
||||
|
|
|
|||
11
stage0/src/Lean/Elab/App.lean
generated
11
stage0/src/Lean/Elab/App.lean
generated
|
|
@ -36,6 +36,15 @@ private def ensureArgType (f : Expr) (arg : Expr) (expectedType : Expr) : TermEl
|
|||
let argType ← inferType arg
|
||||
ensureHasTypeAux expectedType argType arg f
|
||||
|
||||
private def mkProjAndCheck (structName : Name) (idx : Nat) (e : Expr) : MetaM Expr := do
|
||||
let r := mkProj structName idx e
|
||||
let eType ← inferType e
|
||||
if (← isProp eType) then
|
||||
let rType ← inferType r
|
||||
if !(← isProp rType) then
|
||||
throwError "invalid projection, the expression{indentExpr e}\nis a proposition and has type{indentExpr eType}\nbut the projected value is not, it has type{indentExpr rType}"
|
||||
return r
|
||||
|
||||
/-
|
||||
Relevant definitions:
|
||||
```
|
||||
|
|
@ -703,7 +712,7 @@ private def elabAppLValsAux (namedArgs : Array NamedArg) (args : Array Arg) (exp
|
|||
let (f, lvalRes) ← resolveLVal f lval hasArgs
|
||||
match lvalRes with
|
||||
| LValResolution.projIdx structName idx =>
|
||||
let f := mkProj structName idx f
|
||||
let f ← mkProjAndCheck structName idx f
|
||||
addTermInfo lval.getRef f
|
||||
loop f lvals
|
||||
| LValResolution.projFn baseStructName structName fieldName =>
|
||||
|
|
|
|||
4
stage0/src/Lean/Meta/Injective.lean
generated
4
stage0/src/Lean/Meta/Injective.lean
generated
|
|
@ -127,8 +127,8 @@ private def mkInjectiveEqTheoremValue (ctorName : Name) (targetType : Expr) : Me
|
|||
let (_, mvarId₂) ← intro1 mvarId₂
|
||||
solveEqOfCtorEq ctorName mvarId₁ h
|
||||
let mvarId₂ ← casesAnd mvarId₂
|
||||
let mvarId₂ ← substEqs mvarId₂
|
||||
applyRefl mvarId₂ (injTheoremFailureHeader ctorName)
|
||||
if let some mvarId₂ ← substEqs mvarId₂ then
|
||||
applyRefl mvarId₂ (injTheoremFailureHeader ctorName)
|
||||
mkLambdaFVars xs mvar
|
||||
|
||||
private def mkInjectiveEqTheorem (ctorVal : ConstructorVal) : MetaM Unit := do
|
||||
|
|
|
|||
4
stage0/src/Lean/Meta/Tactic/Cases.lean
generated
4
stage0/src/Lean/Meta/Tactic/Cases.lean
generated
|
|
@ -340,11 +340,11 @@ def casesAnd (mvarId : MVarId) : MetaM MVarId := do
|
|||
let mvarIds ← casesRec mvarId fun localDecl => return (← instantiateMVars localDecl.type).isAppOfArity ``And 2
|
||||
exactlyOne mvarIds
|
||||
|
||||
def substEqs (mvarId : MVarId) : MetaM MVarId := do
|
||||
def substEqs (mvarId : MVarId) : MetaM (Option MVarId) := do
|
||||
let mvarIds ← casesRec mvarId fun localDecl => do
|
||||
let type ← instantiateMVars localDecl.type
|
||||
return type.isEq || type.isHEq
|
||||
exactlyOne mvarIds
|
||||
ensureAtMostOne mvarIds
|
||||
|
||||
structure ByCasesSubgoal where
|
||||
mvarId : MVarId
|
||||
|
|
|
|||
69
stage0/src/library/compiler/csimp.cpp
generated
69
stage0/src/library/compiler/csimp.cpp
generated
|
|
@ -233,6 +233,15 @@ class csimp_fn {
|
|||
return tc.whnf(tc.infer(e));
|
||||
}
|
||||
|
||||
optional<expr> whnf_infer_type_guarded(expr const & e) {
|
||||
try {
|
||||
expr r = whnf_infer_type(e);
|
||||
return optional<expr>(r);
|
||||
} catch (kernel_exception &) {
|
||||
return optional<expr>();
|
||||
}
|
||||
}
|
||||
|
||||
name next_name() {
|
||||
/* Remark: we use `m_x.append_after(m_next_idx)` instead of `name(m_x, m_next_idx)`
|
||||
because the resulting name is confusing during debugging: it looks like a projection application.
|
||||
|
|
@ -1165,11 +1174,14 @@ class csimp_fn {
|
|||
/* When we simplify before erasure, we eta-expand all lambdas which are not join points. */
|
||||
buffer<expr> eta_args;
|
||||
if (m_before_erasure && !is_join_point_def) {
|
||||
expr e_type = whnf_infer_type(e);
|
||||
while (is_pi(e_type)) {
|
||||
expr arg = m_lctx.mk_local_decl(ngen(), binding_name(e_type), binding_domain(e_type), binding_info(e_type));
|
||||
eta_args.push_back(arg);
|
||||
e_type = whnf(instantiate(binding_body(e_type), arg));
|
||||
// HACK: infer_type may fail
|
||||
if (auto e_type_opt = whnf_infer_type_guarded(e)) {
|
||||
expr e_type = *e_type_opt;
|
||||
while (is_pi(e_type)) {
|
||||
expr arg = m_lctx.mk_local_decl(ngen(), binding_name(e_type), binding_domain(e_type), binding_info(e_type));
|
||||
eta_args.push_back(arg);
|
||||
e_type = whnf(instantiate(binding_body(e_type), arg));
|
||||
}
|
||||
}
|
||||
}
|
||||
unsigned saved_fvars_size = m_fvars.size();
|
||||
|
|
@ -1518,27 +1530,34 @@ class csimp_fn {
|
|||
update_expr2ctor(major, c, args, cidx, zs);
|
||||
new_minor = visit(minor, false);
|
||||
}
|
||||
new_minor = mk_let(zs, saved_fvars_size, new_minor, false);
|
||||
expr result_minor = mk_minor_lambda(zs, new_minor);
|
||||
if (all_equal_opt) {
|
||||
expr result_minor_body = result_minor;
|
||||
for (unsigned i = 0; i < zs.size(); i++) {
|
||||
result_minor_body = binding_body(result_minor_body);
|
||||
if (has_loose_bvars(result_minor_body)) {
|
||||
/* Minor premise depends on constructor fields. */
|
||||
all_equal_opt = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
try {
|
||||
new_minor = mk_let(zs, saved_fvars_size, new_minor, false);
|
||||
expr result_minor = mk_minor_lambda(zs, new_minor);
|
||||
if (all_equal_opt) {
|
||||
expr result_minor_body = result_minor;
|
||||
for (unsigned i = 0; i < zs.size(); i++) {
|
||||
result_minor_body = binding_body(result_minor_body);
|
||||
if (has_loose_bvars(result_minor_body)) {
|
||||
/* Minor premise depends on constructor fields. */
|
||||
all_equal_opt = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (all_equal_opt) {
|
||||
if (!a_minor) {
|
||||
a_minor = new_minor;
|
||||
} else if (new_minor != *a_minor) {
|
||||
all_equal_opt = false;
|
||||
}
|
||||
}
|
||||
args[minor_idx] = result_minor;
|
||||
} catch (kernel_exception &) {
|
||||
// HACK: the code above depends on `infer_type`, and it may fail.
|
||||
// The compiler performs transformations that do not preserve typability.
|
||||
// When we rewrite the compiler in Lean, we must write a custom `infer_type` that returns an
|
||||
// `Any` type in this kind of situation.
|
||||
}
|
||||
if (all_equal_opt) {
|
||||
if (!a_minor) {
|
||||
a_minor = new_minor;
|
||||
} else if (new_minor != *a_minor) {
|
||||
all_equal_opt = false;
|
||||
}
|
||||
}
|
||||
args[minor_idx] = result_minor;
|
||||
}
|
||||
if (all_equal_opt && a_minor && !is_join_point_app(*a_minor)) {
|
||||
/*
|
||||
|
|
|
|||
1479
stage0/stdlib/Lean/Elab/App.c
generated
1479
stage0/stdlib/Lean/Elab/App.c
generated
File diff suppressed because it is too large
Load diff
395
stage0/stdlib/Lean/Meta/Injective.c
generated
395
stage0/stdlib/Lean/Meta/Injective.c
generated
|
|
@ -19,9 +19,7 @@ static lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injecti
|
|||
size_t lean_usize_add(size_t, size_t);
|
||||
lean_object* l_Lean_Expr_mvarId_x21(lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4;
|
||||
lean_object* l_Lean_stringToMessageData(lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3;
|
||||
lean_object* l_Lean_getConstInfoInduct___at___private_Lean_Meta_RecursorInfo_0__Lean_Meta_mkRecursorInfoForKernelRec___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_addDecl___at_Lean_Meta_mkAuxLemma___spec__4(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_mk_empty_array_with_capacity(lean_object*);
|
||||
|
|
@ -43,6 +41,7 @@ LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_In
|
|||
LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheorems(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_mkInjectiveTheorems___closed__1;
|
||||
lean_object* lean_st_ref_get(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__4;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -64,9 +63,9 @@ static lean_object* l_Lean_Meta_elimOptParam___lambda__1___closed__1;
|
|||
LEAN_EXPORT lean_object* l_Lean_Meta_withNewBinderInfos___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__3(lean_object*);
|
||||
uint8_t lean_usize_dec_lt(size_t, size_t);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg___closed__2;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1;
|
||||
static lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1;
|
||||
lean_object* lean_nat_add(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_apply(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_elimOptParam___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -79,24 +78,22 @@ lean_object* l_Lean_Meta_intro1Core(lean_object*, uint8_t, lean_object*, lean_ob
|
|||
static lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___closed__2;
|
||||
lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_withNewBinderInfosImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* lean_array_fget(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4;
|
||||
lean_object* l_Lean_Meta_applyRefl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2;
|
||||
static lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveEqTheoremNameFor___boxed(lean_object*);
|
||||
lean_object* lean_nat_sub(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_Meta_simpExtension;
|
||||
lean_object* l_Lean_Option_register___at_Std_Format_initFn____x40_Lean_Data_Format___hyg_54____spec__1(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_mkLambdaFVars(lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__3;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6;
|
||||
uint8_t l_Lean_Option_get___at_Lean_ppExpr___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___spec__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__2___boxed(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -109,6 +106,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv
|
|||
uint8_t l_Lean_Expr_isAppOfArity(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__1(lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
extern lean_object* l_Lean_instInhabitedExpr;
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7;
|
||||
lean_object* l___private_Init_Util_0__mkPanicMessageWithDecl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_reverse___rarg(lean_object*);
|
||||
uint8_t l_Array_isEmpty___rarg(lean_object*);
|
||||
|
|
@ -118,26 +116,29 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_injTheorem
|
|||
lean_object* lean_whnf(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure(lean_object*);
|
||||
lean_object* l_Lean_Meta_saturate(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5;
|
||||
size_t lean_usize_of_nat(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__2(size_t, size_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_withNewBinderInfos___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__3___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_forM___at___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f___spec__1(lean_object*, size_t, size_t, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_forallTelescope___at___private_Lean_Meta_InferType_0__Lean_Meta_inferForallType___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1;
|
||||
lean_object* l_Lean_Meta_substEqs(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_assumptionCore(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_object*);
|
||||
uint8_t lean_expr_eqv(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_mkInjectiveTheoremNameFor___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheorem(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7;
|
||||
lean_object* l_Lean_Name_append(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_withLocalDecl___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_SynthInstance_removeUnusedArguments_x3f___spec__2___rarg(lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_forallBoundedTelescope___at_Lean_Meta_addPPExplicitToExposeDiff_visit___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -145,6 +146,7 @@ LEAN_EXPORT lean_object* l_panic___at___private_Lean_Meta_Injective_0__Lean_Meta
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_List_mapTRAux___at_Lean_mkConstWithLevelParams___spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__2___closed__1;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwError___at___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMetaM___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__3;
|
||||
|
|
@ -164,6 +166,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv
|
|||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__2;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__4___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_mkHEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_elimOptParam___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_mkFreshExprSyntheticOpaqueMVar(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_injection(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -173,8 +176,6 @@ uint8_t l_Lean_Expr_occurs(lean_object*, lean_object*);
|
|||
lean_object* l_Lean_Meta_mkEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_mkAppB(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_isProp(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1;
|
||||
lean_object* l_Lean_mkConst(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_elimOptParam___closed__1;
|
||||
|
|
@ -183,6 +184,7 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv
|
|||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_instInhabitedMetaM___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_solveEqOfCtorEq___closed__5;
|
||||
static lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1;
|
||||
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
|
||||
static lean_object* _init_l_Subarray_forInUnsafe_loop___at___private_Lean_Meta_Injective_0__Lean_Meta_mkAnd_x3f___spec__1___closed__1() {
|
||||
_start:
|
||||
|
|
@ -3549,7 +3551,17 @@ x_8 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3
|
|||
return x_8;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1() {
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_9; uint8_t x_10; lean_object* x_11;
|
||||
x_9 = 0;
|
||||
x_10 = 1;
|
||||
x_11 = l_Lean_Meta_mkLambdaFVars(x_1, x_2, x_9, x_10, x_4, x_5, x_6, x_7, x_8);
|
||||
return x_11;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -3557,17 +3569,17 @@ x_1 = lean_mk_string("Eq");
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = lean_box(0);
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1;
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -3575,27 +3587,27 @@ x_1 = lean_mk_string("propIntro");
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2;
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3;
|
||||
x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2;
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = lean_box(0);
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4;
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4;
|
||||
x_3 = l_Lean_mkConst(x_2, x_1);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -3603,16 +3615,16 @@ x_1 = lean_mk_string("unexpected number of subgoals when proving injective theor
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7() {
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2;
|
||||
x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6;
|
||||
x_1 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6;
|
||||
x_2 = l_Lean_stringToMessageData(x_1);
|
||||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
|
|
@ -3625,7 +3637,7 @@ x_12 = lean_ctor_get(x_10, 1);
|
|||
lean_inc(x_12);
|
||||
lean_dec(x_10);
|
||||
x_13 = l_Lean_Expr_mvarId_x21(x_11);
|
||||
x_14 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5;
|
||||
x_14 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5;
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
|
|
@ -3646,7 +3658,7 @@ lean_inc(x_17);
|
|||
lean_dec(x_15);
|
||||
x_18 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_18, 0, x_1);
|
||||
x_19 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7;
|
||||
x_19 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7;
|
||||
x_20 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_18);
|
||||
|
|
@ -3677,7 +3689,7 @@ lean_inc(x_25);
|
|||
lean_dec(x_15);
|
||||
x_26 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_26, 0, x_1);
|
||||
x_27 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7;
|
||||
x_27 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7;
|
||||
x_28 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_27);
|
||||
lean_ctor_set(x_28, 1, x_26);
|
||||
|
|
@ -3776,60 +3788,51 @@ lean_inc(x_4);
|
|||
x_51 = l_Lean_Meta_substEqs(x_49, x_4, x_5, x_6, x_7, x_50);
|
||||
if (lean_obj_tag(x_51) == 0)
|
||||
{
|
||||
lean_object* x_52; lean_object* x_53; lean_object* x_54; lean_object* x_55;
|
||||
lean_object* x_52;
|
||||
x_52 = lean_ctor_get(x_51, 0);
|
||||
lean_inc(x_52);
|
||||
if (lean_obj_tag(x_52) == 0)
|
||||
{
|
||||
lean_object* x_53; uint8_t x_54; lean_object* x_55;
|
||||
lean_dec(x_1);
|
||||
x_53 = lean_ctor_get(x_51, 1);
|
||||
lean_inc(x_53);
|
||||
lean_dec(x_51);
|
||||
x_54 = l___private_Lean_Meta_Injective_0__Lean_Meta_injTheoremFailureHeader(x_1);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
x_55 = l_Lean_Meta_applyRefl(x_52, x_54, x_4, x_5, x_6, x_7, x_53);
|
||||
if (lean_obj_tag(x_55) == 0)
|
||||
{
|
||||
lean_object* x_56; uint8_t x_57; lean_object* x_58;
|
||||
x_56 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_56);
|
||||
lean_dec(x_55);
|
||||
x_57 = 1;
|
||||
x_58 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_57, x_4, x_5, x_6, x_7, x_56);
|
||||
x_54 = 1;
|
||||
x_55 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_54, x_4, x_5, x_6, x_7, x_53);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
return x_58;
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_59;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
x_59 = !lean_is_exclusive(x_55);
|
||||
if (x_59 == 0)
|
||||
{
|
||||
return x_55;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_60; lean_object* x_61; lean_object* x_62;
|
||||
x_60 = lean_ctor_get(x_55, 0);
|
||||
x_61 = lean_ctor_get(x_55, 1);
|
||||
lean_inc(x_61);
|
||||
lean_object* x_56; lean_object* x_57; lean_object* x_58; lean_object* x_59;
|
||||
x_56 = lean_ctor_get(x_51, 1);
|
||||
lean_inc(x_56);
|
||||
lean_dec(x_51);
|
||||
x_57 = lean_ctor_get(x_52, 0);
|
||||
lean_inc(x_57);
|
||||
lean_dec(x_52);
|
||||
x_58 = l___private_Lean_Meta_Injective_0__Lean_Meta_injTheoremFailureHeader(x_1);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
x_59 = l_Lean_Meta_applyRefl(x_57, x_58, x_4, x_5, x_6, x_7, x_56);
|
||||
if (lean_obj_tag(x_59) == 0)
|
||||
{
|
||||
lean_object* x_60; uint8_t x_61; lean_object* x_62;
|
||||
x_60 = lean_ctor_get(x_59, 1);
|
||||
lean_inc(x_60);
|
||||
lean_dec(x_55);
|
||||
x_62 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_62, 0, x_60);
|
||||
lean_ctor_set(x_62, 1, x_61);
|
||||
lean_dec(x_59);
|
||||
x_61 = 1;
|
||||
x_62 = l_Lean_Meta_mkLambdaFVars(x_2, x_11, x_36, x_61, x_4, x_5, x_6, x_7, x_60);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
return x_62;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_63;
|
||||
|
|
@ -3839,20 +3842,19 @@ lean_dec(x_6);
|
|||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_63 = !lean_is_exclusive(x_51);
|
||||
x_63 = !lean_is_exclusive(x_59);
|
||||
if (x_63 == 0)
|
||||
{
|
||||
return x_51;
|
||||
return x_59;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_64; lean_object* x_65; lean_object* x_66;
|
||||
x_64 = lean_ctor_get(x_51, 0);
|
||||
x_65 = lean_ctor_get(x_51, 1);
|
||||
x_64 = lean_ctor_get(x_59, 0);
|
||||
x_65 = lean_ctor_get(x_59, 1);
|
||||
lean_inc(x_65);
|
||||
lean_inc(x_64);
|
||||
lean_dec(x_51);
|
||||
lean_dec(x_59);
|
||||
x_66 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_66, 0, x_64);
|
||||
lean_ctor_set(x_66, 1, x_65);
|
||||
|
|
@ -3860,6 +3862,7 @@ return x_66;
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_67;
|
||||
|
|
@ -3870,19 +3873,19 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_67 = !lean_is_exclusive(x_48);
|
||||
x_67 = !lean_is_exclusive(x_51);
|
||||
if (x_67 == 0)
|
||||
{
|
||||
return x_48;
|
||||
return x_51;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_68; lean_object* x_69; lean_object* x_70;
|
||||
x_68 = lean_ctor_get(x_48, 0);
|
||||
x_69 = lean_ctor_get(x_48, 1);
|
||||
x_68 = lean_ctor_get(x_51, 0);
|
||||
x_69 = lean_ctor_get(x_51, 1);
|
||||
lean_inc(x_69);
|
||||
lean_inc(x_68);
|
||||
lean_dec(x_48);
|
||||
lean_dec(x_51);
|
||||
x_70 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_70, 0, x_68);
|
||||
lean_ctor_set(x_70, 1, x_69);
|
||||
|
|
@ -3893,7 +3896,6 @@ return x_70;
|
|||
else
|
||||
{
|
||||
uint8_t x_71;
|
||||
lean_dec(x_45);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
|
|
@ -3901,19 +3903,19 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_71 = !lean_is_exclusive(x_46);
|
||||
x_71 = !lean_is_exclusive(x_48);
|
||||
if (x_71 == 0)
|
||||
{
|
||||
return x_46;
|
||||
return x_48;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_72; lean_object* x_73; lean_object* x_74;
|
||||
x_72 = lean_ctor_get(x_46, 0);
|
||||
x_73 = lean_ctor_get(x_46, 1);
|
||||
x_72 = lean_ctor_get(x_48, 0);
|
||||
x_73 = lean_ctor_get(x_48, 1);
|
||||
lean_inc(x_73);
|
||||
lean_inc(x_72);
|
||||
lean_dec(x_46);
|
||||
lean_dec(x_48);
|
||||
x_74 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_74, 0, x_72);
|
||||
lean_ctor_set(x_74, 1, x_73);
|
||||
|
|
@ -3924,8 +3926,7 @@ return x_74;
|
|||
else
|
||||
{
|
||||
uint8_t x_75;
|
||||
lean_dec(x_41);
|
||||
lean_dec(x_40);
|
||||
lean_dec(x_45);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
|
|
@ -3933,19 +3934,19 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_75 = !lean_is_exclusive(x_42);
|
||||
x_75 = !lean_is_exclusive(x_46);
|
||||
if (x_75 == 0)
|
||||
{
|
||||
return x_42;
|
||||
return x_46;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_76; lean_object* x_77; lean_object* x_78;
|
||||
x_76 = lean_ctor_get(x_42, 0);
|
||||
x_77 = lean_ctor_get(x_42, 1);
|
||||
x_76 = lean_ctor_get(x_46, 0);
|
||||
x_77 = lean_ctor_get(x_46, 1);
|
||||
lean_inc(x_77);
|
||||
lean_inc(x_76);
|
||||
lean_dec(x_42);
|
||||
lean_dec(x_46);
|
||||
x_78 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_78, 0, x_76);
|
||||
lean_ctor_set(x_78, 1, x_77);
|
||||
|
|
@ -3956,7 +3957,8 @@ return x_78;
|
|||
else
|
||||
{
|
||||
uint8_t x_79;
|
||||
lean_dec(x_35);
|
||||
lean_dec(x_41);
|
||||
lean_dec(x_40);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
|
|
@ -3964,19 +3966,19 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_79 = !lean_is_exclusive(x_37);
|
||||
x_79 = !lean_is_exclusive(x_42);
|
||||
if (x_79 == 0)
|
||||
{
|
||||
return x_37;
|
||||
return x_42;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_80; lean_object* x_81; lean_object* x_82;
|
||||
x_80 = lean_ctor_get(x_37, 0);
|
||||
x_81 = lean_ctor_get(x_37, 1);
|
||||
x_80 = lean_ctor_get(x_42, 0);
|
||||
x_81 = lean_ctor_get(x_42, 1);
|
||||
lean_inc(x_81);
|
||||
lean_inc(x_80);
|
||||
lean_dec(x_37);
|
||||
lean_dec(x_42);
|
||||
x_82 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_82, 0, x_80);
|
||||
lean_ctor_set(x_82, 1, x_81);
|
||||
|
|
@ -3986,38 +3988,8 @@ return x_82;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_83; lean_object* x_84; lean_object* x_85; lean_object* x_86; lean_object* x_87; lean_object* x_88; lean_object* x_89;
|
||||
lean_dec(x_32);
|
||||
lean_dec(x_24);
|
||||
lean_dec(x_16);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_2);
|
||||
x_83 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_83);
|
||||
lean_dec(x_15);
|
||||
x_84 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_84, 0, x_1);
|
||||
x_85 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7;
|
||||
x_86 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_86, 0, x_85);
|
||||
lean_ctor_set(x_86, 1, x_84);
|
||||
x_87 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4;
|
||||
x_88 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_88, 0, x_86);
|
||||
lean_ctor_set(x_88, 1, x_87);
|
||||
x_89 = l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(x_88, x_4, x_5, x_6, x_7, x_83);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_89;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_90;
|
||||
uint8_t x_83;
|
||||
lean_dec(x_35);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
|
|
@ -4025,23 +3997,84 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_90 = !lean_is_exclusive(x_15);
|
||||
if (x_90 == 0)
|
||||
x_83 = !lean_is_exclusive(x_37);
|
||||
if (x_83 == 0)
|
||||
{
|
||||
return x_37;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_84; lean_object* x_85; lean_object* x_86;
|
||||
x_84 = lean_ctor_get(x_37, 0);
|
||||
x_85 = lean_ctor_get(x_37, 1);
|
||||
lean_inc(x_85);
|
||||
lean_inc(x_84);
|
||||
lean_dec(x_37);
|
||||
x_86 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_86, 0, x_84);
|
||||
lean_ctor_set(x_86, 1, x_85);
|
||||
return x_86;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_87; lean_object* x_88; lean_object* x_89; lean_object* x_90; lean_object* x_91; lean_object* x_92; lean_object* x_93;
|
||||
lean_dec(x_32);
|
||||
lean_dec(x_24);
|
||||
lean_dec(x_16);
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_2);
|
||||
x_87 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_87);
|
||||
lean_dec(x_15);
|
||||
x_88 = lean_alloc_ctor(4, 1, 0);
|
||||
lean_ctor_set(x_88, 0, x_1);
|
||||
x_89 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7;
|
||||
x_90 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_90, 0, x_89);
|
||||
lean_ctor_set(x_90, 1, x_88);
|
||||
x_91 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveTheoremTypeCore_x3f_mkArgs2___closed__4;
|
||||
x_92 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_92, 0, x_90);
|
||||
lean_ctor_set(x_92, 1, x_91);
|
||||
x_93 = l_Lean_throwError___at_Lean_Meta_abstractRange___spec__1(x_92, x_4, x_5, x_6, x_7, x_87);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
return x_93;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_94;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_94 = !lean_is_exclusive(x_15);
|
||||
if (x_94 == 0)
|
||||
{
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_91; lean_object* x_92; lean_object* x_93;
|
||||
x_91 = lean_ctor_get(x_15, 0);
|
||||
x_92 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_92);
|
||||
lean_inc(x_91);
|
||||
lean_object* x_95; lean_object* x_96; lean_object* x_97;
|
||||
x_95 = lean_ctor_get(x_15, 0);
|
||||
x_96 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_96);
|
||||
lean_inc(x_95);
|
||||
lean_dec(x_15);
|
||||
x_93 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_93, 0, x_91);
|
||||
lean_ctor_set(x_93, 1, x_92);
|
||||
return x_93;
|
||||
x_97 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_97, 0, x_95);
|
||||
lean_ctor_set(x_97, 1, x_96);
|
||||
return x_97;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4050,12 +4083,24 @@ LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiv
|
|||
_start:
|
||||
{
|
||||
lean_object* x_8; lean_object* x_9;
|
||||
x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1), 8, 1);
|
||||
x_8 = lean_alloc_closure((void*)(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2), 8, 1);
|
||||
lean_closure_set(x_8, 0, x_1);
|
||||
x_9 = l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(x_2, x_8, x_3, x_4, x_5, x_6, x_7);
|
||||
return x_9;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9;
|
||||
x_9 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_3);
|
||||
return x_9;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1() {
|
||||
_start:
|
||||
{
|
||||
|
|
@ -4401,7 +4446,7 @@ return x_83;
|
|||
}
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1() {
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -4409,17 +4454,17 @@ x_1 = lean_mk_string("genInjectivity");
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2() {
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = lean_box(0);
|
||||
x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1;
|
||||
x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3() {
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -4427,13 +4472,13 @@ x_1 = lean_mk_string("generate injectivity theorems for inductive datatype const
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4() {
|
||||
static lean_object* _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4() {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5;
|
||||
x_1 = 1;
|
||||
x_2 = l___private_Lean_Meta_Injective_0__Lean_Meta_throwInjectiveTheoremFailure___rarg___closed__1;
|
||||
x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3;
|
||||
x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3;
|
||||
x_4 = lean_box(x_1);
|
||||
x_5 = lean_alloc_ctor(0, 3, 0);
|
||||
lean_ctor_set(x_5, 0, x_4);
|
||||
|
|
@ -4442,12 +4487,12 @@ lean_ctor_set(x_5, 2, x_3);
|
|||
return x_5;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3; lean_object* x_4;
|
||||
x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2;
|
||||
x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4;
|
||||
x_2 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2;
|
||||
x_3 = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4;
|
||||
x_4 = l_Lean_Option_register___at_Std_Format_initFn____x40_Lean_Data_Format___hyg_54____spec__1(x_2, x_3, x_1);
|
||||
return x_4;
|
||||
}
|
||||
|
|
@ -4658,7 +4703,7 @@ if (x_13 == 0)
|
|||
lean_object* x_14; lean_object* x_15; lean_object* x_16; uint8_t x_17;
|
||||
x_14 = lean_ctor_get(x_12, 0);
|
||||
x_15 = lean_ctor_get(x_12, 1);
|
||||
x_16 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4;
|
||||
x_16 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4;
|
||||
x_17 = l_Lean_Environment_contains(x_10, x_16);
|
||||
if (x_17 == 0)
|
||||
{
|
||||
|
|
@ -4849,7 +4894,7 @@ x_50 = lean_ctor_get(x_12, 1);
|
|||
lean_inc(x_50);
|
||||
lean_inc(x_49);
|
||||
lean_dec(x_12);
|
||||
x_51 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4;
|
||||
x_51 = l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4;
|
||||
x_52 = l_Lean_Environment_contains(x_10, x_51);
|
||||
if (x_52 == 0)
|
||||
{
|
||||
|
|
@ -5161,31 +5206,31 @@ l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1 = _init_l_Lean_Meta_mkInject
|
|||
lean_mark_persistent(l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__1);
|
||||
l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2 = _init_l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2();
|
||||
lean_mark_persistent(l_Lean_Meta_mkInjectiveEqTheoremNameFor___closed__2);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__1);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__2);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__3);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__4);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__5);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__6);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__1___closed__7);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__1);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__2);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__3);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__4);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__5);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__6);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheoremValue___lambda__2___closed__7);
|
||||
l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1 = _init_l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1();
|
||||
lean_mark_persistent(l___private_Lean_Meta_Injective_0__Lean_Meta_mkInjectiveEqTheorem___closed__1);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__1);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__2);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__3);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673____closed__4);
|
||||
if (builtin) {res = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1673_(lean_io_mk_world());
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__1);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__2);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__3);
|
||||
l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4 = _init_l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4();
|
||||
lean_mark_persistent(l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716____closed__4);
|
||||
if (builtin) {res = l_Lean_Meta_initFn____x40_Lean_Meta_Injective___hyg_1716_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
l_Lean_Meta_genInjectivity = lean_io_result_get_value(res);
|
||||
lean_mark_persistent(l_Lean_Meta_genInjectivity);
|
||||
|
|
|
|||
9
stage0/stdlib/Lean/Meta/Tactic/Cases.c
generated
9
stage0/stdlib/Lean/Meta/Tactic/Cases.c
generated
|
|
@ -28,6 +28,7 @@ LEAN_EXPORT lean_object* l___private_Lean_MetavarContext_0__Lean_MetavarContext_
|
|||
static lean_object* l_Array_anyMUnsafe_any___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__54___closed__2;
|
||||
lean_object* l_Lean_Expr_mvarId_x21(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Meta_casesRec___spec__8___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_ensureAtMostOne(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_registerTraceClass(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_stringToMessageData(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at_Lean_Meta_generalizeIndices___spec__1___lambda__6(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -251,7 +252,7 @@ LEAN_EXPORT lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_Tactic_
|
|||
LEAN_EXPORT lean_object* l_Std_PersistentArray_anyMAux___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__30___boxed(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_synthPendingImp___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Expr_withAppAux___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_mkCasesContext_x3f___spec__1___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(lean_object*);
|
||||
lean_object* l_Lean_LocalDecl_fvarId(lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Meta_Tactic_Cases_0__Lean_Meta_Cases_hasIndepIndices___spec__15(lean_object*, lean_object*, lean_object*, size_t, size_t);
|
||||
static lean_object* l_Lean_Meta_Cases_unifyEqs_substEq___closed__1;
|
||||
|
|
@ -15928,7 +15929,7 @@ x_10 = lean_ctor_get(x_8, 1);
|
|||
lean_inc(x_10);
|
||||
lean_dec(x_8);
|
||||
x_11 = l_Lean_Meta_casesAnd___closed__4;
|
||||
x_12 = l_Lean_Meta_exactlyOne(x_9, x_11, x_2, x_3, x_4, x_5, x_10);
|
||||
x_12 = l_Lean_Meta_ensureAtMostOne(x_9, x_11, x_2, x_3, x_4, x_5, x_10);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
|
|
@ -16660,7 +16661,7 @@ lean_dec(x_2);
|
|||
return x_7;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
|
|
@ -16836,7 +16837,7 @@ l_Lean_Meta_byCases___closed__4 = _init_l_Lean_Meta_byCases___closed__4();
|
|||
lean_mark_persistent(l_Lean_Meta_byCases___closed__4);
|
||||
l_Lean_Meta_byCases___closed__5 = _init_l_Lean_Meta_byCases___closed__5();
|
||||
lean_mark_persistent(l_Lean_Meta_byCases___closed__5);
|
||||
res = l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4311_(lean_io_mk_world());
|
||||
res = l_Lean_Meta_initFn____x40_Lean_Meta_Tactic_Cases___hyg_4314_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue