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
25 lines
529 B
Text
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
|