Что делают фигурные скобки {} в ssreflect rewrite
Я читаю и играю с учебником ssreflect и столкнулся с использованием {} для цитирования вещей, которые я не совсем понимаю:
Variables P Q : bool -> Prop.
Hypothesis P2Q : forall a b, P (a || b) -> Q a.
Goal forall a, P (a || a) -> True.
move=> a HPa. move: {HPa} (@P2Q _ _ HPa) => HQa.
Может кто-нибудь объяснить, что делает {HPa}
сделать для HPa
?
Кстати, контекст должен был ввести "взгляды". Я пытался удалить {}
, он все еще работает, но генерирует что-то другое. И я не знаю, где искать документацию для таких вещей, как скобки или @
в этом отношении.
1 ответ
После некоторых экспериментов и сравнения, кажется, что функция {H}
это к clear H.
в терминах Coq.
move: {HPa} (@P2Q _ _ HPa) => HQa.
дает
1 subgoals
a : bool
HQa : Q a
______________________________________(1/1)
True
в то время как
move: (@P2Q _ _ HPa) => HQa.
дает то же самое, за исключением того, что HPa
сохраняется без изменений в контексте:
1 subgoals
a : bool
HPa : P (a || a)
HQa : Q a
______________________________________(1/1)
True