(1) What are the grammatical rules for specifying a semantics?
<semantics> ::= <principle>
<principle> ::= <classical-principle>
| it isn't the case that <principle>
| <principle> and <principle>
| <principle> or <principle>
| if <principle> then <principle>
| there exists <quantified-upon> such that <principle>
| for all <quantified-upon>, <principle>
| <set> is the intersection of all subsets of A that satisfy <principle>
| <set> is maximal w.r.t. <principle>
| <set> is minimal w.r.t. <principle>
| <complex-set> is a subset of <complex-set>
| <argument> is in <domain>
<classical-principle> ::= <set> is conflict-free
| <set> satisfies admissibility
| <set> satisfies reinstatement
<quantified-upon> ::= <argument> ℜ <argument>
| <argument> in <set>
| <set> subset of <set>
<complex-set> ::= <domain>
| <complex-set> union <complex-set>
| <complex-set> intersection <complex-set>
| A \ <complex-set>
| ℜ⁺ <set>
| ℜ⁻ <set>
<domain> ::= <set>
| ℜ⁺ <argument>
| ℜ⁻ <argument>
<set> ::= A | S | S1 | S2 | S3 | ...
<argument> ::= a | b | c | ... | x | y | z
<semantics> ::= <principle>
(2) At some point, not all symbols a, b, c,..., x, y, z or S1, S2, S3,...
are available to choose from?
S1, S2, S3,... are variables denoting sets of arguments.
So, they should only occur quantified.
When <principle> is developed into "<argument> is in
<domain>", the scroll menu therefore only allows to choose between
variables that are currently quantified.
By contrast, A and S are not variables (hence they can always be chosen to expand <set>).
(3) There is a warning pop-up "Would you really want to use ...?
When
<quantified-upon> is developed, if a variable chosen for
<argument> or <set> is already quantified, then there is a
warning pop-up:
The user must decide whether the new occurrence of the variable
introduces a new quantification, in which case the user must choose a
fresh variable.
Example:
Assume that "For all a in S, there exists <quantified-upon> such
that <principle>" is expanded by developing
<quantified-upon> into "<argument> ℜ <argument>".
Assume further that the user chooses "b" to develop the first
<argument> and chooses "a" to develop the second <argument>.
There is a warning pop-up "Would you really want to use a?".
If the user answers yes, then the result "For all a in S, there exists
bℜa such that <principle>" means "For all a in S, there exists b
of the kind bℜa such that <principle>".
In this case, the results means that for all a in S, an argument x
satisfying aℜx must exist such that <principle> (parameterized by
a, x) holds.
If the user answers no, then after the user chooses an alternative
variable -say c- instead of a, the result will be "For all a in S, there
exists bℜc such that <principle>".
Here, the result means that for all a in S, two arguments x and y
satisfying xℜy must exist such that <principle> (parameterized by
a, x, y) holds.