I'm reading "Program=Proof" by Samuel Mimram, and they use a notation for defining a formal language that I'm not familiar with.
Here is how "Program=Proof" defines a formal language of Propositional Logic:
Here is how "Program=Proof" defines a formal language of λ-calculus:
On the other hand, I'm more used to formal languages defined in the following way (this example is from Wikipedia):
Do I understand it right that this rule:
A, B ::= X | A ⇒ B | A ∧ B | ⊤ | A ∨ B | ⊥ | ¬A
can be rewritten to a more traditional:
S → X | S ⇒ S | S ∧ S | ⊤ | S ∨ S | ⊥ | ¬S
And this rule:
t, u ::= x | t u | λx.t
can be rewritten to a more traditional:
S → x | S S | λx.S
without any loss of information?