fa03ae2a26
This commit improves the condition for showing that an equality(and convertability) constraint cannot be solved. A nice consequence is that Lean produces nicer error messages. For example, the error message for unit test elab1.lean is more informative. Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
688 lines
29 KiB
Text
688 lines
29 KiB
Text
Set: pp::colors
|
||
Set: pp::unicode
|
||
Assumed: f
|
||
Failed to solve
|
||
⊢ (?M::1 ≈ λ x : ℕ, x) ⊕ (?M::1 ≈ nat_to_int) ⊕ (?M::1 ≈ nat_to_real)
|
||
(line: 4: pos: 8) Coercion for
|
||
10
|
||
Failed to solve
|
||
⊢ Bool ≺ ℕ
|
||
Substitution
|
||
⊢ Bool ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 3 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
⊢ ℕ ≺ ?M::0
|
||
Substitution
|
||
⊢ (?M::5[inst:0 (10)]) 10 ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 2 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
x : ℕ ⊢ λ x : ℕ, ℕ ≈ ?M::5
|
||
Destruct/Decompose
|
||
x : ℕ ⊢ ℕ ≈ ?M::5 x
|
||
Destruct/Decompose
|
||
⊢ ℕ → ℕ ≈ Π x : ?M::4, ?M::5 x
|
||
Substitution
|
||
⊢ ?M::3 ≈ Π x : ?M::4, ?M::5 x
|
||
Function expected at
|
||
?M::1 10
|
||
Assignment
|
||
⊢ ℕ → ℕ ≺ ?M::3
|
||
Propagate type, ?M::1 : ?M::3
|
||
Assignment
|
||
⊢ ?M::1 ≈ λ x : ℕ, x
|
||
Assumption 0
|
||
Failed to solve
|
||
⊢ Bool ≺ ℤ
|
||
Substitution
|
||
⊢ Bool ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 3 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
⊢ ℤ ≺ ?M::0
|
||
Substitution
|
||
⊢ (?M::5[inst:0 (10)]) 10 ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 2 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
_ : ℕ ⊢ λ x : ℕ, ℤ ≈ ?M::5
|
||
Destruct/Decompose
|
||
_ : ℕ ⊢ ℤ ≈ ?M::5 _
|
||
Destruct/Decompose
|
||
⊢ ℕ → ℤ ≈ Π x : ?M::4, ?M::5 x
|
||
Substitution
|
||
⊢ ?M::3 ≈ Π x : ?M::4, ?M::5 x
|
||
Function expected at
|
||
?M::1 10
|
||
Assignment
|
||
⊢ ℕ → ℤ ≺ ?M::3
|
||
Propagate type, ?M::1 : ?M::3
|
||
Assignment
|
||
⊢ ?M::1 ≈ nat_to_int
|
||
Assumption 1
|
||
Failed to solve
|
||
⊢ Bool ≺ ℝ
|
||
Substitution
|
||
⊢ Bool ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 3 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
⊢ ℝ ≺ ?M::0
|
||
Substitution
|
||
⊢ (?M::5[inst:0 (10)]) 10 ≺ ?M::0
|
||
(line: 4: pos: 6) Type of argument 2 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1 10
|
||
⊤
|
||
Assignment
|
||
_ : ℕ ⊢ λ x : ℕ, ℝ ≈ ?M::5
|
||
Destruct/Decompose
|
||
_ : ℕ ⊢ ℝ ≈ ?M::5 _
|
||
Destruct/Decompose
|
||
⊢ ℕ → ℝ ≈ Π x : ?M::4, ?M::5 x
|
||
Substitution
|
||
⊢ ?M::3 ≈ Π x : ?M::4, ?M::5 x
|
||
Function expected at
|
||
?M::1 10
|
||
Assignment
|
||
⊢ ℕ → ℝ ≺ ?M::3
|
||
Propagate type, ?M::1 : ?M::3
|
||
Assignment
|
||
⊢ ?M::1 ≈ nat_to_real
|
||
Assumption 2
|
||
Assumed: g
|
||
Error (line: 7, pos: 8) unexpected metavariable occurrence
|
||
Assumed: h
|
||
Failed to solve
|
||
x : ?M::0, A : Type ⊢ ?M::0[lift:0:2] ≺ A
|
||
(line: 11: pos: 27) Type of argument 2 must be convertible to the expected type in the application of
|
||
h
|
||
with arguments:
|
||
A
|
||
x
|
||
Assumed: my_eq
|
||
Failed to solve
|
||
A : Type, B : Type, a : ?M::0, b : ?M::1, C : Type ⊢ ?M::0[lift:0:3] ≺ C
|
||
(line: 15: pos: 51) Type of argument 2 must be convertible to the expected type in the application of
|
||
my_eq
|
||
with arguments:
|
||
C
|
||
a
|
||
b
|
||
Assumed: a
|
||
Assumed: b
|
||
Assumed: H
|
||
Failed to solve
|
||
⊢ if ?M::0 ?M::1 ⊤ ≺ b
|
||
Normalize
|
||
⊢ ?M::0 ⇒ ?M::1 ≺ b
|
||
(line: 20: pos: 18) Type of definition 't1' must be convertible to expected type.
|
||
Failed to solve
|
||
⊢ b ≈ a
|
||
Substitution
|
||
⊢ b ≈ ?M::3
|
||
Destruct/Decompose
|
||
⊢ b == b ≺ ?M::3 == ?M::4
|
||
(line: 22: pos: 22) Type of argument 6 must be convertible to the expected type in the application of
|
||
Trans::explicit
|
||
with arguments:
|
||
?M::1
|
||
?M::2
|
||
?M::3
|
||
?M::4
|
||
Refl a
|
||
Refl b
|
||
Assignment
|
||
⊢ a ≈ ?M::3
|
||
Destruct/Decompose
|
||
⊢ a == a ≺ ?M::2 == ?M::3
|
||
(line: 22: pos: 22) Type of argument 5 must be convertible to the expected type in the application of
|
||
Trans::explicit
|
||
with arguments:
|
||
?M::1
|
||
?M::2
|
||
?M::3
|
||
?M::4
|
||
Refl a
|
||
Refl b
|
||
Failed to solve
|
||
⊢ (?M::0 ≈ Type) ⊕ (?M::0 ≈ Type 1) ⊕ (?M::0 ≈ Type 2) ⊕ (?M::0 ≈ Type M) ⊕ (?M::0 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type ≺ ?M::0
|
||
(line: 24: pos: 6) Type of argument 3 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Failed to solve
|
||
⊢ (?M::1 ≈ Type 1) ⊕ (?M::1 ≈ Type 2) ⊕ (?M::1 ≈ Type 3) ⊕ (?M::1 ≈ Type M) ⊕ (?M::1 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type 1 ≺ ?M::1
|
||
Propagate type, ?M::0 : ?M::1
|
||
Assignment
|
||
⊢ ?M::0 ≈ Type
|
||
Assumption 0
|
||
Failed to solve
|
||
⊢ Type 1 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 1
|
||
Assumption 1
|
||
Failed to solve
|
||
⊢ Type 2 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 2
|
||
Assumption 2
|
||
Failed to solve
|
||
⊢ Type 3 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 3
|
||
Assumption 3
|
||
Failed to solve
|
||
⊢ Type M ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M
|
||
Assumption 4
|
||
Failed to solve
|
||
⊢ Type U ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U
|
||
Assumption 5
|
||
Failed to solve
|
||
⊢ (?M::1 ≈ Type 2) ⊕ (?M::1 ≈ Type 3) ⊕ (?M::1 ≈ Type 4) ⊕ (?M::1 ≈ Type M) ⊕ (?M::1 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type 2 ≺ ?M::1
|
||
Propagate type, ?M::0 : ?M::1
|
||
Assignment
|
||
⊢ ?M::0 ≈ Type 1
|
||
Assumption 6
|
||
Failed to solve
|
||
⊢ Type 2 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 2
|
||
Assumption 7
|
||
Failed to solve
|
||
⊢ Type 3 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 3
|
||
Assumption 8
|
||
Failed to solve
|
||
⊢ Type 4 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 4
|
||
Assumption 9
|
||
Failed to solve
|
||
⊢ Type M ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M
|
||
Assumption 10
|
||
Failed to solve
|
||
⊢ Type U ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U
|
||
Assumption 11
|
||
Failed to solve
|
||
⊢ (?M::1 ≈ Type 3) ⊕ (?M::1 ≈ Type 4) ⊕ (?M::1 ≈ Type 5) ⊕ (?M::1 ≈ Type M) ⊕ (?M::1 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type 3 ≺ ?M::1
|
||
Propagate type, ?M::0 : ?M::1
|
||
Assignment
|
||
⊢ ?M::0 ≈ Type 2
|
||
Assumption 12
|
||
Failed to solve
|
||
⊢ Type 3 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 3
|
||
Assumption 13
|
||
Failed to solve
|
||
⊢ Type 4 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 4
|
||
Assumption 14
|
||
Failed to solve
|
||
⊢ Type 5 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type 5
|
||
Assumption 15
|
||
Failed to solve
|
||
⊢ Type M ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M
|
||
Assumption 16
|
||
Failed to solve
|
||
⊢ Type U ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U
|
||
Assumption 17
|
||
Failed to solve
|
||
⊢
|
||
(?M::1 ≈ Type M+1) ⊕ (?M::1 ≈ Type M+2) ⊕ (?M::1 ≈ Type M+3) ⊕ (?M::1 ≈ Type M) ⊕ (?M::1 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type M+1 ≺ ?M::1
|
||
Propagate type, ?M::0 : ?M::1
|
||
Assignment
|
||
⊢ ?M::0 ≈ Type M
|
||
Assumption 18
|
||
Failed to solve
|
||
⊢ Type M+1 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M+1
|
||
Assumption 19
|
||
Failed to solve
|
||
⊢ Type M+2 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M+2
|
||
Assumption 20
|
||
Failed to solve
|
||
⊢ Type M+3 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M+3
|
||
Assumption 21
|
||
Failed to solve
|
||
⊢ Type M ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M
|
||
Assumption 22
|
||
Failed to solve
|
||
⊢ Type U ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U
|
||
Assumption 23
|
||
Failed to solve
|
||
⊢
|
||
(?M::1 ≈ Type U+1) ⊕ (?M::1 ≈ Type U+2) ⊕ (?M::1 ≈ Type U+3) ⊕ (?M::1 ≈ Type M) ⊕ (?M::1 ≈ Type U)
|
||
Destruct/Decompose
|
||
⊢ Type U+1 ≺ ?M::1
|
||
Propagate type, ?M::0 : ?M::1
|
||
Assignment
|
||
⊢ ?M::0 ≈ Type U
|
||
Assumption 24
|
||
Failed to solve
|
||
⊢ Type U+1 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U+1
|
||
Assumption 25
|
||
Failed to solve
|
||
⊢ Type U+2 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U+2
|
||
Assumption 26
|
||
Failed to solve
|
||
⊢ Type U+3 ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U+3
|
||
Assumption 27
|
||
Failed to solve
|
||
⊢ Type M ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type M
|
||
Assumption 28
|
||
Failed to solve
|
||
⊢ Type U ≺ Type
|
||
Substitution
|
||
⊢ ?M::1 ≺ Type
|
||
(line: 24: pos: 6) Type of argument 1 must be convertible to the expected type in the application of
|
||
f::explicit
|
||
with arguments:
|
||
?M::0
|
||
Bool
|
||
Bool
|
||
Assignment
|
||
⊢ ?M::1 ≈ Type U
|
||
Assumption 29
|
||
Failed to solve
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ a ≺ if (if a b ⊤) a ⊤
|
||
Normalize
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ a ≺ (a ⇒ b) ⇒ a
|
||
Substitution
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ a ≺ ?M::5[lift:0:1]
|
||
Substitution
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ ?M::8 ≺ ?M::5[lift:0:1]
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool, H : ?M::2 ⊢ Π H_na : ?M::7, ?M::8 ≺ Π _ : ?M::4, ?M::5[lift:0:1]
|
||
(line: 27: pos: 21) Type of argument 6 must be convertible to the expected type in the application of
|
||
DisjCases::explicit
|
||
with arguments:
|
||
?M::3
|
||
?M::4
|
||
?M::5
|
||
EM a
|
||
λ H_a : ?M::6, H
|
||
λ H_na : ?M::7, NotImp1 (MT H H_na)
|
||
Assignment
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ a ≈ ?M::8
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ if a b ⊤ ≈ if ?M::8 ?M::9 ⊤
|
||
Normalize
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ if a b ⊤ ≈ ?M::8 ⇒ ?M::9
|
||
Substitution
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ if a b ⊤ ≈ ?M::10
|
||
Destruct/Decompose
|
||
a : Bool,
|
||
b : Bool,
|
||
H : ?M::2,
|
||
H_na : ?M::7 ⊢
|
||
if (if a b ⊤) a ⊤ ≺ if ?M::10 ?M::11 ⊤
|
||
Normalize
|
||
a : Bool,
|
||
b : Bool,
|
||
H : ?M::2,
|
||
H_na : ?M::7 ⊢
|
||
(a ⇒ b) ⇒ a ≺ if ?M::10 ?M::11 ⊤
|
||
Substitution
|
||
a : Bool,
|
||
b : Bool,
|
||
H : ?M::2,
|
||
H_na : ?M::7 ⊢
|
||
?M::2[lift:0:2] ≺ if ?M::10 ?M::11 ⊤
|
||
Normalize
|
||
a : Bool,
|
||
b : Bool,
|
||
H : ?M::2,
|
||
H_na : ?M::7 ⊢
|
||
?M::2[lift:0:2] ≺ ?M::10 ⇒ ?M::11
|
||
(line: 29: pos: 48) Type of argument 3 must be convertible to the expected type in the application of
|
||
MT::explicit
|
||
with arguments:
|
||
?M::10
|
||
?M::11
|
||
H
|
||
H_na
|
||
Normalize assignment
|
||
?M::0
|
||
Assignment
|
||
a : Bool, b : Bool ⊢ ?M::2 ≈ ?M::0
|
||
Destruct/Decompose
|
||
a : Bool,
|
||
b : Bool ⊢
|
||
Π H : ?M::2, ?M::5 ≺ Π _ : ?M::0, ?M::1[lift:0:1]
|
||
(line: 27: pos: 4) Type of argument 3 must be convertible to the expected type in the application of
|
||
Discharge::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1
|
||
λ H : ?M::2,
|
||
DisjCases
|
||
(EM a)
|
||
(λ H_a : ?M::6, H)
|
||
(λ H_na : ?M::7, NotImp1 (MT H H_na))
|
||
Assignment
|
||
a : Bool, b : Bool ⊢ ?M::0 ≈ (a ⇒ b) ⇒ a
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool ⊢ ?M::0 ⇒ ?M::1 ≺ ((a ⇒ b) ⇒ a) ⇒ a
|
||
Destruct/Decompose
|
||
a : Bool ⊢
|
||
Π b : Bool, ?M::0 ⇒ ?M::1 ≺
|
||
Π b : Bool, ((a ⇒ b) ⇒ a) ⇒ a
|
||
Destruct/Decompose
|
||
⊢
|
||
Π a b : Bool, ?M::0 ⇒ ?M::1 ≺
|
||
Π a b : Bool, ((a ⇒ b) ⇒ a) ⇒ a
|
||
(line: 26: pos: 16) Type of definition 'pierce' must be convertible to expected type.
|
||
Assignment
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ ?M::10 ≈ ?M::8 ⇒ ?M::9
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool, H : ?M::2, H_na : ?M::7 ⊢ ¬ ?M::10 ≺ ¬ (?M::8 ⇒ ?M::9)
|
||
(line: 29: pos: 40) Type of argument 3 must be convertible to the expected type in the application of
|
||
NotImp1::explicit
|
||
with arguments:
|
||
?M::8
|
||
?M::9
|
||
MT H H_na
|
||
Assignment
|
||
a : Bool, b : Bool, H : ?M::2 ⊢ (a ⇒ b) ⇒ a ≺ ?M::5
|
||
Normalize
|
||
a : Bool, b : Bool, H : ?M::2, H_a : ?M::6 ⊢ (a ⇒ b) ⇒ a ≺ ?M::5[lift:0:1]
|
||
Substitution
|
||
a : Bool, b : Bool, H : ?M::2, H_a : ?M::6 ⊢ ?M::2[lift:0:2] ≺ ?M::5[lift:0:1]
|
||
Destruct/Decompose
|
||
a : Bool,
|
||
b : Bool,
|
||
H : ?M::2 ⊢
|
||
Π H_a : ?M::6, ?M::2[lift:0:2] ≺ Π _ : ?M::3, ?M::5[lift:0:1]
|
||
(line: 27: pos: 21) Type of argument 5 must be convertible to the expected type in the application of
|
||
DisjCases::explicit
|
||
with arguments:
|
||
?M::3
|
||
?M::4
|
||
?M::5
|
||
EM a
|
||
λ H_a : ?M::6, H
|
||
λ H_na : ?M::7, NotImp1 (MT H H_na)
|
||
Normalize assignment
|
||
?M::0
|
||
Assignment
|
||
a : Bool, b : Bool ⊢ ?M::2 ≈ ?M::0
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool ⊢ Π H : ?M::2, ?M::5 ≺ Π _ : ?M::0, ?M::1[lift:0:1]
|
||
(line: 27: pos: 4) Type of argument 3 must be convertible to the expected type in the application of
|
||
Discharge::explicit
|
||
with arguments:
|
||
?M::0
|
||
?M::1
|
||
λ H : ?M::2,
|
||
DisjCases (EM a) (λ H_a : ?M::6, H) (λ H_na : ?M::7, NotImp1 (MT H H_na))
|
||
Assignment
|
||
a : Bool, b : Bool ⊢ ?M::0 ≈ (a ⇒ b) ⇒ a
|
||
Destruct/Decompose
|
||
a : Bool, b : Bool ⊢ ?M::0 ⇒ ?M::1 ≺ ((a ⇒ b) ⇒ a) ⇒ a
|
||
Destruct/Decompose
|
||
a : Bool ⊢ Π b : Bool, ?M::0 ⇒ ?M::1 ≺ Π b : Bool, ((a ⇒ b) ⇒ a) ⇒ a
|
||
Destruct/Decompose
|
||
⊢ Π a b : Bool, ?M::0 ⇒ ?M::1 ≺ Π a b : Bool, ((a ⇒ b) ⇒ a) ⇒ a
|
||
(line: 26: pos: 16) Type of definition 'pierce' must be convertible to expected type.
|