even when rewriting the type of `h` becuase there is no expected type. (When there is an expected type, it already tried both orientations.) Also feeble attempt to include this information in the docstring without writing half a manual chapter.
18 lines
1 KiB
Text
18 lines
1 KiB
Text
def foo := 3
|
|
def bar := 4
|
|
|
|
def ex1 (heq : foo = bar) (P : Nat → Prop) (h : P foo) := heq ▸ h
|
|
#check ex1
|
|
def ex2 (heq : foo = bar) (P : Nat → Prop) (h : P foo) : P 4 := heq ▸ h -- error
|
|
def ex3 (heq : foo = bar) (P : Nat → Prop) (h : P foo) : P bar := heq ▸ h
|
|
def ex4 (heq : foo = bar) (P : Nat → Prop) (h : P 3) := heq ▸ h -- error
|
|
def ex5 (heq : foo = bar) (P : Nat → Prop) (h : P 3) : P 4 := heq ▸ h -- error
|
|
def ex6 (heq : foo = bar) (P : Nat → Prop) (h : P 3) : P bar := heq ▸ h
|
|
|
|
def ex7 (heq : bar = foo) (P : Nat → Prop) (h : P foo) := heq ▸ h
|
|
#check ex7
|
|
def ex8 (heq : bar = foo) (P : Nat → Prop) (h : P foo) : P 4 := heq ▸ h -- error
|
|
def ex9 (heq : bar = foo) (P : Nat → Prop) (h : P foo) : P bar := heq ▸ h
|
|
def ex10 (heq : bar = foo) (P : Nat → Prop) (h : P 3) := heq ▸ h -- error
|
|
def ex11 (heq : bar = foo) (P : Nat → Prop) (h : P 3) : P 4 := heq ▸ h -- error
|
|
def ex12 (heq : bar = foo) (P : Nat → Prop) (h : P 3) : P bar := heq ▸ h
|