41 lines
678 B
Text
41 lines
678 B
Text
new_frontend
|
||
|
||
def f1.g := 10
|
||
|
||
def f1 (x : Nat) : Nat :=
|
||
let rec g : Nat → Nat -- Error f1.g has already been declared
|
||
| 0 => x
|
||
| y+1 => 2 * g y;
|
||
g (g x)
|
||
|
||
axiom Ax {α} : α
|
||
|
||
def f2 (x : Nat) : Nat :=
|
||
let rec
|
||
g : Nat → Nat
|
||
| 0 => 1
|
||
| y+1 => (h y).val,
|
||
h : (x : Nat) → { y : Nat // y < g x } -- unknown identifier `g`
|
||
| 0 => ⟨10, Ax⟩
|
||
| _ => ⟨20, Ax⟩;
|
||
10
|
||
|
||
|
||
mutual
|
||
|
||
def f (x : Nat) : Nat :=
|
||
let rec g (y : Nat) (h : y = f x) : Nat := -- error type is using 'f'
|
||
f y + 1;
|
||
x + 1
|
||
|
||
end
|
||
|
||
mutual
|
||
|
||
def f (x : Nat) : Nat :=
|
||
let rec g (y : Nat) : Nat :=
|
||
let rec h (z : Nat) (h : z = g z) : Nat := z + 1; -- error type is using 'g'
|
||
f y + 1;
|
||
x + 1
|
||
|
||
end
|