Примечание: Это повторный вопрос второго вопроса здесь , который оказался менее связанным с первым вопросом (ответили там), чем я думал, что это будет.
Рассмотрим следующую минимальную разработку на основе библиотеки Isabelle Sequents:
theory Test
imports Pure Sequents.Sequents
begin
syntax "_Trueprop" :: "two_seqe" ("((_)/ ⊢ (_))" [6,6] 5)
consts Trueprop :: two_seqi
parse_translation ‹[ (@{syntax_const "_Trueprop"}, K (two_seq_tr @{const_syntax Trueprop})) ]›
print_translation ‹[ (@{const_syntax Trueprop}, K (two_seq_tr' @{syntax_const "_Trueprop"})) ]›
axiomatization where
xch : "⋀A B C D. $A, $B, $C ⊢ $D ⟹ $C, $B, $A ⊢ $D"
lemma xch0 : "$A, $C ⊢ $D ⟹ $C, $A ⊢ $D"
apply (rule xch[of A _ C D] ; assumption) done
lemma xch1 : "$A, P, $C ⊢ $D ⟹ $C, P, $A ⊢ $D"
apply (rule xch[of A _ C D] ; assumption) done
lemma xch2 : "$A, P, Q, $C ⊢ $D ⟹ $C, P, Q, $A ⊢ $D"
apply (rule xch[of A _ C D] ; assumption) done
Эти доказательства работают (фактически, они работают даже без аннотаций of
).Однако я хочу знать, что я мог бы написать вместо _
s, чтобы быть максимально явным.То есть, как мне написать «пустую последовательность» или «последовательность, содержащую только P
» или «последовательность, содержащую только P, Q
»?Не работает запись ""
для xch0
, P
или "P"
для xch1
, "P, Q"
для xch2
, и я не могу понять из источника Sequents
для какого явного синтаксиса эти обозначения являются аббревиатурами.