lean2/tests/lean/634b.lean

42 lines
903 B
Text
Raw Normal View History

open nat
namespace foo
section
parameter (X : Type₁)
definition A {n : } : Type₁ := X
definition B : Type₁ := X
variable {n : }
check @A n
check foo.A nat
check foo.A (X × B)
check @foo.A (X × B) 10
check @foo.A (@foo.B (@A n)) n
check @foo.A (@foo.B (@foo.A X n)) n
check @foo.A (@foo.B (@foo.A nat n)) n
set_option pp.full_names true
check A
check foo.A nat
check @foo.A (X × B) 10
check @foo.A (@foo.B (@foo.A X n)) n
check @foo.A (@foo.B (@foo.A nat n)) n
set_option pp.full_names false
set_option pp.implicit true
check @A n
check @foo.A nat 10
check @foo.A X n
set_option pp.full_names true
check @foo.A X n
check @A n
set_option pp.full_names false
check @foo.A X n
check @foo.A B n
check @foo.A (@foo.B (@A n)) n
check @foo.A (@foo.B (@foo.A X n)) n
check @foo.A (@foo.B (@foo.A nat n)) n
check @A n
end
end foo