, .
- , .
, ( ), .. C or $X $X or C.
( , ) , ( !). , .
, , , , , :
foo (Or ({C} disjointUnion {X})) = ...
, , , Isabelle/HOL, , .
EDIT: , Isabelle function ( fun) , , , , .
EDIT 2: , , n, :
A | B | C | D, B | C | $X, $X . , , .
, , .
{ (B,B), (C,C) }
, . .
, , , ( A D), $X, . , , , RHS , LHS , ( ).
, . , , , , !
For the record, this may not be a good approach in all cases. I had very complex concepts of “coincidence” on the sub-terminals (i.e. Not simple equality), and therefore building kits or something would not work. Perhaps this will work in your case, although you can directly calculate unrelated joins.
source
share