lean4-htt/tests/lean/run/1813.lean
Leonardo de Moura f36fca875c feag(frontends/lean): explicit delimiters in declaration parameters
Comment from parser.h

This commit makes sure that all declaration parameters must be surrounded with some kind of bracket. (e.g., '()', '{}', '[]').
The goal is to avoid counter-intuitive declarations such as:

              example p : false := trivial
              def main proof : false := trivial

which would be parsed as

              example (p : false) : _ := trivial

              def main (proof : false) : _ := trivial

where `_` in both cases is elaborated into `true`. This issue was raised by @gebner in the slack channel.

Remark: we still want implicit delimiters for lambda/pi expressions. That is, we want to write

               fun x : t, s
           or
               fun x, s

instead of

               fun (x : t), s
2017-09-15 10:07:09 -07:00

25 lines
529 B
Text

open tactic
example {A B : Type} (f : A -> B) (a b c) (h1 : f a = b) (h2 : f a = c) : false :=
begin
rw h1 at *,
guard_hyp h1 := f a = b,
guard_hyp h2 := b = c,
admit
end
example {A B : Type} (f : A -> B) (a b c) (h1 : f a = b) (h2 : f a = c) : false :=
begin
rw [id h1] at *,
guard_hyp h1 := f a = b,
guard_hyp h2 := b = c,
admit
end
example {A B : Type} (f : A -> B) (a b c) (h1 : f a = b) (h2 : f a = c) : false :=
begin
rw [id id h1] at *,
guard_hyp h1 := f a = b,
guard_hyp h2 := b = c,
admit
end