fix(tests/lean): notation ℕ is now defined in the top-level
This commit is contained in:
parent
072971f3bb
commit
44c6e92a64
17 changed files with 48 additions and 48 deletions
|
@ -1,2 +1,2 @@
|
||||||
definition nat.add : nat → nat → nat :=
|
definition nat.add : ℕ → ℕ → ℕ :=
|
||||||
λ (a b : nat), nat.rec_on b a (λ (b₁ : nat), nat.succ)
|
λ (a b : ℕ), nat.rec_on b a (λ (b₁ : ℕ), nat.succ)
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
bad_structures2.lean:7:27: error: invalid 'structure' header, field 'x' from 'boo' has already been declared with a different type
|
bad_structures2.lean:7:27: error: invalid 'structure' header, field 'x' from 'boo' has already been declared with a different type
|
||||||
bool
|
bool
|
||||||
and
|
and
|
||||||
nat
|
ℕ
|
||||||
bad_structures2.lean:12:27: error: invalid 'structure' header, field 'x' has already been declared with a different binder annotation
|
bad_structures2.lean:12:27: error: invalid 'structure' header, field 'x' has already been declared with a different binder annotation
|
||||||
bad_structures2.lean:15:1: error: field 'x' has been declared in parent structure
|
bad_structures2.lean:15:1: error: field 'x' has been declared in parent structure
|
||||||
bad_structures2.lean:18:2: error: invalid field, identifier expected
|
bad_structures2.lean:18:2: error: invalid field, identifier expected
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
constr_tac_errors.lean:3:2: error:invalid 'constructor' tactic, goal is an inductive datatype, but it does not have 1 constructor(s)
|
constr_tac_errors.lean:3:2: error:invalid 'constructor' tactic, goal is an inductive datatype, but it does not have 1 constructor(s)
|
||||||
proof state:
|
proof state:
|
||||||
|
|
||||||
⊢ nat
|
⊢ ℕ
|
||||||
constr_tac_errors.lean:4:0: error: don't know how to synthesize placeholder
|
constr_tac_errors.lean:4:0: error: don't know how to synthesize placeholder
|
||||||
|
|
||||||
⊢ nat
|
⊢ ℕ
|
||||||
constr_tac_errors.lean:4:0: error: failed to add declaration 'example' to environment, value has metavariables
|
constr_tac_errors.lean:4:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
?M_1
|
?M_1
|
||||||
|
@ -47,10 +47,10 @@ remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
constr_tac_errors.lean:39:2: error:invalid 'constructor' tactic, goal is not an inductive datatype
|
constr_tac_errors.lean:39:2: error:invalid 'constructor' tactic, goal is not an inductive datatype
|
||||||
proof state:
|
proof state:
|
||||||
|
|
||||||
⊢ nat → nat
|
⊢ ℕ → ℕ
|
||||||
constr_tac_errors.lean:40:0: error: don't know how to synthesize placeholder
|
constr_tac_errors.lean:40:0: error: don't know how to synthesize placeholder
|
||||||
|
|
||||||
⊢ nat → nat
|
⊢ ℕ → ℕ
|
||||||
constr_tac_errors.lean:40:0: error: failed to add declaration 'example' to environment, value has metavariables
|
constr_tac_errors.lean:40:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
?M_1
|
?M_1
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
ctx.lean:3:0: error: don't know how to synthesize placeholder
|
ctx.lean:3:0: error: don't know how to synthesize placeholder
|
||||||
A B : Type,
|
A B : Type,
|
||||||
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 : nat,
|
a1 a2 a3 a4 a5 a6 a7 a8 a9 a10 : ℕ,
|
||||||
b1 b2 b3 : bool,
|
b1 b2 b3 : bool,
|
||||||
h : A = B,
|
h : A = B,
|
||||||
p1 p2 : A × B
|
p1 p2 : A × B
|
||||||
⊢ nat
|
⊢ ℕ
|
||||||
ctx.lean:3:0: error: failed to add declaration 'foo' to environment, value has metavariables
|
ctx.lean:3:0: error: failed to add declaration 'foo' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
?M_1
|
?M_1
|
||||||
|
|
|
@ -11,6 +11,6 @@ error_full_names.lean:8:6: error: type mismatch at application
|
||||||
term
|
term
|
||||||
nat.zero
|
nat.zero
|
||||||
has type
|
has type
|
||||||
foo.nat
|
|
||||||
but is expected to have type
|
|
||||||
nat
|
nat
|
||||||
|
but is expected to have type
|
||||||
|
ℕ
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
errors.lean:4:0: error: unknown identifier 'a'
|
errors.lean:4:0: error: unknown identifier 'a'
|
||||||
tst1 : nat → nat → nat
|
tst1 : ℕ → ℕ → ℕ
|
||||||
errors.lean:12:8: error: unknown identifier 'add'
|
errors.lean:12:8: error: unknown identifier 'add'
|
||||||
errors.lean:22:12: error: unknown identifier 'b'
|
errors.lean:22:12: error: unknown identifier 'b'
|
||||||
tst3 : A → A → A
|
tst3 : A → A → A
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
exact_partial2.lean:3:21: error: don't know how to synthesize placeholder
|
exact_partial2.lean:3:21: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
h₁ : a = b,
|
h₁ : a = b,
|
||||||
h₂ : b = c
|
h₂ : b = c
|
||||||
⊢ b = c
|
⊢ b = c
|
||||||
exact_partial2.lean:3:2: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
exact_partial2.lean:3:2: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
||||||
eq.trans h₁ ?M_1
|
eq.trans h₁ ?M_1
|
||||||
proof state:
|
proof state:
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
h₁ : a = b,
|
h₁ : a = b,
|
||||||
h₂ : b = c
|
h₂ : b = c
|
||||||
⊢ a = c
|
⊢ a = c
|
||||||
exact_partial2.lean:4:0: error: don't know how to synthesize placeholder
|
exact_partial2.lean:4:0: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
h₁ : a = b,
|
h₁ : a = b,
|
||||||
h₂ : b = c
|
h₂ : b = c
|
||||||
⊢ a = c
|
⊢ a = c
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
have_tactic.lean:4:31: error: don't know how to synthesize placeholder
|
have_tactic.lean:4:31: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
h₁ : a = b,
|
h₁ : a = b,
|
||||||
h₂ : b = c
|
h₂ : b = c
|
||||||
⊢ b = c
|
⊢ b = c
|
||||||
have_tactic.lean:4:19: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
have_tactic.lean:4:19: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
||||||
eq.trans h₁ ?M_1
|
eq.trans h₁ ?M_1
|
||||||
proof state:
|
proof state:
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
h₁ : a = b,
|
h₁ : a = b,
|
||||||
h₂ : b = c
|
h₂ : b = c
|
||||||
⊢ a = c
|
⊢ a = c
|
||||||
have_tactic.lean:5:0: error: don't know how to synthesize placeholder
|
have_tactic.lean:5:0: error: don't know how to synthesize placeholder
|
||||||
a b c : nat
|
a b c : ℕ
|
||||||
⊢ a = b → b = c → a = c
|
⊢ a = b → b = c → a = c
|
||||||
have_tactic.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
have_tactic.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
|
|
|
@ -9,15 +9,15 @@ false.rec_on|Π (C : Type), false → C
|
||||||
false.cases_on|Π (C : Type), false → C
|
false.cases_on|Π (C : Type), false → C
|
||||||
false.induction_on|∀ (C : Prop), false → C
|
false.induction_on|∀ (C : Prop), false → C
|
||||||
true_ne_false|¬true = false
|
true_ne_false|¬true = false
|
||||||
nat.lt_self_iff_false|∀ (n : nat), nat.lt n n ↔ false
|
nat.lt_self_iff_false|∀ (n : ℕ), nat.lt n n ↔ false
|
||||||
not_of_is_false|is_false ?c → ¬?c
|
not_of_is_false|is_false ?c → ¬?c
|
||||||
not_of_iff_false|(?a ↔ false) → ¬?a
|
not_of_iff_false|(?a ↔ false) → ¬?a
|
||||||
is_false|Π (c : Prop) [H : decidable c], Prop
|
is_false|Π (c : Prop) [H : decidable c], Prop
|
||||||
classical.eq_true_or_eq_false|∀ (a : Prop), a = true ∨ a = false
|
classical.eq_true_or_eq_false|∀ (a : Prop), a = true ∨ a = false
|
||||||
classical.eq_false_or_eq_true|∀ (a : Prop), a = false ∨ a = true
|
classical.eq_false_or_eq_true|∀ (a : Prop), a = false ∨ a = true
|
||||||
nat.lt_zero_iff_false|∀ (a : nat), nat.lt a nat.zero ↔ false
|
nat.lt_zero_iff_false|∀ (a : ℕ), nat.lt a nat.zero ↔ false
|
||||||
not_of_eq_false|?p = false → ¬?p
|
not_of_eq_false|?p = false → ¬?p
|
||||||
nat.succ_le_self_iff_false|∀ (n : nat), nat.le (nat.succ n) n ↔ false
|
nat.succ_le_self_iff_false|∀ (n : ℕ), nat.le (nat.succ n) n ↔ false
|
||||||
decidable.rec_on_false|Π (H3 : ¬?p), ?H2 H3 → decidable.rec_on ?H ?H1 ?H2
|
decidable.rec_on_false|Π (H3 : ¬?p), ?H2 H3 → decidable.rec_on ?H ?H1 ?H2
|
||||||
not_false|¬false
|
not_false|¬false
|
||||||
decidable_false|decidable false
|
decidable_false|decidable false
|
||||||
|
@ -25,6 +25,6 @@ of_not_is_false|¬is_false ?c → ?c
|
||||||
classical.cases_true_false|∀ (P : Prop → Prop), P true → P false → (∀ (a : Prop), P a)
|
classical.cases_true_false|∀ (P : Prop → Prop), P true → P false → (∀ (a : Prop), P a)
|
||||||
iff_false_intro|¬?a → (?a ↔ false)
|
iff_false_intro|¬?a → (?a ↔ false)
|
||||||
ne_false_of_self|?p → ?p ≠ false
|
ne_false_of_self|?p → ?p ≠ false
|
||||||
nat.succ_le_zero_iff_false|∀ (n : nat), nat.le (nat.succ n) nat.zero ↔ false
|
nat.succ_le_zero_iff_false|∀ (n : ℕ), nat.le (nat.succ n) nat.zero ↔ false
|
||||||
tactic.exfalso|tactic
|
tactic.exfalso|tactic
|
||||||
-- ENDFINDP
|
-- ENDFINDP
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
mismatch.lean:3:7: error: type mismatch at application
|
mismatch.lean:3:7: error: type mismatch at application
|
||||||
@id nat 1
|
@id ℕ 1
|
||||||
term
|
term
|
||||||
1
|
1
|
||||||
has type
|
has type
|
||||||
num
|
num
|
||||||
but is expected to have type
|
but is expected to have type
|
||||||
nat
|
ℕ
|
||||||
|
|
|
@ -2,11 +2,11 @@ quasireducible.lean:11:11: error:invalid 'rewrite' tactic, rewrite step failed u
|
||||||
f a
|
f a
|
||||||
no subterm in the goal matched the pattern
|
no subterm in the goal matched the pattern
|
||||||
proof state:
|
proof state:
|
||||||
a : nat,
|
a : ℕ,
|
||||||
H : f a = a
|
H : f a = a
|
||||||
⊢ g a = a
|
⊢ g a = a
|
||||||
quasireducible.lean:11:0: error: don't know how to synthesize placeholder
|
quasireducible.lean:11:0: error: don't know how to synthesize placeholder
|
||||||
a : nat,
|
a : ℕ,
|
||||||
H : f a = a
|
H : f a = a
|
||||||
⊢ g a = a
|
⊢ g a = a
|
||||||
quasireducible.lean:11:0: error: failed to add declaration 'example' to environment, value has metavariables
|
quasireducible.lean:11:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
|
@ -16,11 +16,11 @@ quasireducible.lean:16:11: error:invalid 'rewrite' tactic, rewrite step failed u
|
||||||
f a
|
f a
|
||||||
no subterm in the goal matched the pattern
|
no subterm in the goal matched the pattern
|
||||||
proof state:
|
proof state:
|
||||||
a : nat,
|
a : ℕ,
|
||||||
H : f a = a
|
H : f a = a
|
||||||
⊢ g a = a
|
⊢ g a = a
|
||||||
quasireducible.lean:16:0: error: don't know how to synthesize placeholder
|
quasireducible.lean:16:0: error: don't know how to synthesize placeholder
|
||||||
a : nat,
|
a : ℕ,
|
||||||
H : f a = a
|
H : f a = a
|
||||||
⊢ g a = a
|
⊢ g a = a
|
||||||
quasireducible.lean:16:0: error: failed to add declaration 'example' to environment, value has metavariables
|
quasireducible.lean:16:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
revert_fail.lean:5:2: error:invalid 'revert' tactic, hypothesis 'v' depends on 'n'
|
revert_fail.lean:5:2: error:invalid 'revert' tactic, hypothesis 'v' depends on 'n'
|
||||||
proof state:
|
proof state:
|
||||||
A : Type,
|
A : Type,
|
||||||
n : nat,
|
n : ℕ,
|
||||||
v : vector A n
|
v : vector A n
|
||||||
⊢ v = v
|
⊢ v = v
|
||||||
revert_fail.lean:6:0: error: don't know how to synthesize placeholder
|
revert_fail.lean:6:0: error: don't know how to synthesize placeholder
|
||||||
A : Type,
|
A : Type,
|
||||||
n : nat,
|
n : ℕ,
|
||||||
v : vector A n
|
v : vector A n
|
||||||
⊢ v = v
|
⊢ v = v
|
||||||
revert_fail.lean:6:0: error: failed to add declaration 'example' to environment, value has metavariables
|
revert_fail.lean:6:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
|
@ -16,17 +16,17 @@ revert_fail.lean:11:2: error:invalid tactic, there are no goals to be solved
|
||||||
proof state:
|
proof state:
|
||||||
no goals
|
no goals
|
||||||
revert_fail.lean:12:0: error: don't know how to synthesize placeholder
|
revert_fail.lean:12:0: error: don't know how to synthesize placeholder
|
||||||
n : nat
|
n : ℕ
|
||||||
⊢ n = n
|
⊢ n = n
|
||||||
revert_fail.lean:12:0: error: failed to add declaration 'example' to environment, value has metavariables
|
revert_fail.lean:12:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
?M_1
|
?M_1
|
||||||
revert_fail.lean:16:2: error:invalid 'revert' tactic, unknown hypothesis 'm'
|
revert_fail.lean:16:2: error:invalid 'revert' tactic, unknown hypothesis 'm'
|
||||||
proof state:
|
proof state:
|
||||||
n : nat
|
n : ℕ
|
||||||
⊢ n = n
|
⊢ n = n
|
||||||
revert_fail.lean:17:0: error: don't know how to synthesize placeholder
|
revert_fail.lean:17:0: error: don't know how to synthesize placeholder
|
||||||
n : nat
|
n : ℕ
|
||||||
⊢ n = n
|
⊢ n = n
|
||||||
revert_fail.lean:17:0: error: failed to add declaration 'example' to environment, value has metavariables
|
revert_fail.lean:17:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
|
|
|
@ -83,7 +83,7 @@ theorem succ_ne_self (n : ℕ) : succ n ≠ n
|
||||||
absurd H ne)
|
absurd H ne)
|
||||||
(take k IH H, IH (succ.inj H))
|
(take k IH H, IH (succ.inj H))
|
||||||
|
|
||||||
theorem decidable_eq [instance] (n m : ℕ) : decidable (n = m)
|
theorem decidable_eq [instance] (n m : nat) : decidable (n = m)
|
||||||
:= have general : ∀n, decidable (n = m), from
|
:= have general : ∀n, decidable (n = m), from
|
||||||
nat.rec_on m
|
nat.rec_on m
|
||||||
(take n,
|
(take n,
|
||||||
|
|
|
@ -77,7 +77,7 @@ theorem succ_ne_self (n : ℕ) : succ n ≠ n
|
||||||
absurd H ne)
|
absurd H ne)
|
||||||
(take k IH H, IH (succ.inj H))
|
(take k IH H, IH (succ.inj H))
|
||||||
|
|
||||||
theorem decidable_eq [instance] (n m : ℕ) : decidable (n = m)
|
theorem decidable_eq [instance] (n m : nat) : decidable (n = m)
|
||||||
:= have general : ∀n, decidable (n = m), from
|
:= have general : ∀n, decidable (n = m), from
|
||||||
nat.rec_on m
|
nat.rec_on m
|
||||||
(take n,
|
(take n,
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
subst_bug.lean:4:2: error:invalid 'subst' tactic, 'a' occurs in the other side of the equation
|
subst_bug.lean:4:2: error:invalid 'subst' tactic, 'a' occurs in the other side of the equation
|
||||||
proof state:
|
proof state:
|
||||||
f : nat → nat,
|
f : ℕ → ℕ,
|
||||||
a b : nat,
|
a b : ℕ,
|
||||||
h₁ : f a = a
|
h₁ : f a = a
|
||||||
⊢ f (f a) = a
|
⊢ f (f a) = a
|
||||||
subst_bug.lean:5:0: error: don't know how to synthesize placeholder
|
subst_bug.lean:5:0: error: don't know how to synthesize placeholder
|
||||||
f : nat → nat,
|
f : ℕ → ℕ,
|
||||||
a b : nat
|
a b : ℕ
|
||||||
⊢ f a = a → f (f a) = a
|
⊢ f a = a → f (f a) = a
|
||||||
subst_bug.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
subst_bug.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
unsolved_proof_qed.lean:2:18: error: don't know how to synthesize placeholder
|
unsolved_proof_qed.lean:2:18: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ b = c
|
⊢ b = c
|
||||||
unsolved_proof_qed.lean:2:0: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
unsolved_proof_qed.lean:2:0: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
||||||
eq.trans H₁ ?M_1
|
eq.trans H₁ ?M_1
|
||||||
proof state:
|
proof state:
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ a = c
|
⊢ a = c
|
||||||
unsolved_proof_qed.lean:2:0: error: don't know how to synthesize placeholder
|
unsolved_proof_qed.lean:2:0: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ a = c
|
⊢ a = c
|
||||||
|
@ -19,23 +19,23 @@ unsolved_proof_qed.lean:2:0: error: failed to add declaration 'example' to envir
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
?M_1
|
?M_1
|
||||||
unsolved_proof_qed.lean:5:33: error: don't know how to synthesize placeholder
|
unsolved_proof_qed.lean:5:33: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ c = b
|
⊢ c = b
|
||||||
unsolved_proof_qed.lean:5:18: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
unsolved_proof_qed.lean:5:18: error:invalid 'exact' tactic, term still contains metavariables after elaboration
|
||||||
eq.trans ?M_1 (eq.symm H₁)
|
eq.trans ?M_1 (eq.symm H₁)
|
||||||
proof state:
|
proof state:
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ c = a
|
⊢ c = a
|
||||||
unsolved_proof_qed.lean:5:18: error: don't know how to synthesize placeholder
|
unsolved_proof_qed.lean:5:18: error: don't know how to synthesize placeholder
|
||||||
a b c : nat,
|
a b c : ℕ,
|
||||||
H₁ : a = b,
|
H₁ : a = b,
|
||||||
H₂ : b = c
|
H₂ : b = c
|
||||||
⊢ c = a
|
⊢ c = a
|
||||||
unsolved_proof_qed.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
unsolved_proof_qed.lean:5:0: error: failed to add declaration 'example' to environment, value has metavariables
|
||||||
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
remark: set 'formatter.hide_full_terms' to false to see the complete term
|
||||||
λ (a b c : nat) (H₁ : …) (H₂ : …),
|
λ (a b c : ℕ) (H₁ : …) (H₂ : …),
|
||||||
… ?M_1
|
… ?M_1
|
||||||
|
|
|
@ -20,9 +20,9 @@ recursor information
|
||||||
major premise pos.: 2
|
major premise pos.: 2
|
||||||
dep. elimination: 1
|
dep. elimination: 1
|
||||||
vector.induction_on.{l_1} :
|
vector.induction_on.{l_1} :
|
||||||
∀ {A : Type.{l_1}} {C : Π (a : nat), vector.{l_1} A a → Prop} {a : nat} (n : vector.{l_1} A a),
|
∀ {A : Type.{l_1}} {C : Π (a : ℕ), vector.{l_1} A a → Prop} {a : ℕ} (n : vector.{l_1} A a),
|
||||||
C nat.zero (@vector.nil.{l_1} A) →
|
C nat.zero (@vector.nil.{l_1} A) →
|
||||||
(∀ {n : nat} (a : A) (a_1 : vector.{l_1} A n), C n a_1 → C (nat.succ n) (@vector.cons.{l_1} A n a a_1)) →
|
(∀ {n : ℕ} (a : A) (a_1 : vector.{l_1} A n), C n a_1 → C (nat.succ n) (@vector.cons.{l_1} A n a a_1)) →
|
||||||
C a n
|
C a n
|
||||||
recursor information
|
recursor information
|
||||||
num. parameters: 1
|
num. parameters: 1
|
||||||
|
|
Loading…
Reference in a new issue