From 8d8781116927e667550ed1a092f7ee185dc09bb8 Mon Sep 17 00:00:00 2001
From: rakhimov
Date: Sat, 20 Jan 2018 09:40:14 -0800
Subject: [PATCH] Limit XOR and IFF to two arguments
Currently, XOR and IFF are specified as n-ary connectives.
In addition to being rarely used,
these connectives are not intuitive in their associative, n-ary forms.
For example, a naive user may confuse XOR with natural 'either .. or',
which doesn't hold with more than 2 args;
it is rather 'odd' (pun intended :)).
I think those FTA tools that do support these gates
limit the number of arguments to 2 (e.g., graphically).
It would be unreasonable to require generality without a practical need.
---
mef/schema/formula.rnc | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/mef/schema/formula.rnc b/mef/schema/formula.rnc
index 9d522ea..0399bb9 100644
--- a/mef/schema/formula.rnc
+++ b/mef/schema/formula.rnc
@@ -4,8 +4,8 @@ formula =
| element and { formula+ }
| element or { formula+ }
| element not { formula }
- | element xor { formula+ }
- | element iff { formula+ }
+ | element xor { formula, formula }
+ | element iff { formula, formula }
| element nand { formula+ }
| element nor { formula+ }
| element atleast {