61 lines
981 B
Text
61 lines
981 B
Text
import Lean
|
||
|
||
|
||
def ex : ∃ x : Nat, x = 1 :=
|
||
⟨1, rfl⟩
|
||
|
||
open Lean Meta
|
||
|
||
/--
|
||
error: invalid projection
|
||
ex.3
|
||
from type
|
||
∃ x, x = 1
|
||
-/
|
||
#guard_msgs in
|
||
run_meta check (Expr.proj ``Exists 2 (mkConst ``ex)) -- should fail
|
||
|
||
/--
|
||
error: invalid projection
|
||
ex.1
|
||
from type
|
||
∃ x, x = 1
|
||
-/
|
||
#guard_msgs in
|
||
run_meta check (Expr.proj ``Exists 0 (mkConst ``ex)) -- should fail
|
||
|
||
run_meta check (Expr.proj ``Exists 1 (mkConst ``ex))
|
||
|
||
def p := (1, 2)
|
||
|
||
/--
|
||
error: invalid projection
|
||
p.1
|
||
from type
|
||
Nat × Nat
|
||
-/
|
||
#guard_msgs in
|
||
run_meta check (Expr.proj ``Exists 0 (mkConst ``p)) -- should fail
|
||
|
||
run_meta check (Expr.proj ``Prod 0 (mkConst ``p))
|
||
run_meta check (Expr.proj ``Prod 1 (mkConst ``p))
|
||
|
||
/--
|
||
error: invalid projection
|
||
p.3
|
||
from type
|
||
Nat × Nat
|
||
-/
|
||
#guard_msgs in
|
||
run_meta check (Expr.proj ``Prod 2 (mkConst ``p)) -- should fail
|
||
|
||
def n := 1
|
||
|
||
/--
|
||
error: invalid projection
|
||
n.1
|
||
from type
|
||
Nat
|
||
-/
|
||
#guard_msgs in
|
||
run_meta check (Expr.proj ``Nat 0 (mkConst ``n)) -- should fail
|