Implementation
final prereq = {
// facts that could determine the value of LogicAtom('algebraic')
LogicAtom('algebraic'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('finite'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('antiHermitian')
LogicAtom('antiHermitian'): {
LogicAtom('imaginary'),
},
// facts that could determine the value of LogicAtom('commutative')
LogicAtom('commutative'): {
LogicAtom('algebraic'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('complex')
LogicAtom('complex'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('finite'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('composite')
LogicAtom('composite'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('even')
LogicAtom('even'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('nonInteger'),
LogicAtom('odd'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedNegative')
LogicAtom('extendedNegative'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedNonNegative')
LogicAtom('extendedNonNegative'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedNonPositive')
LogicAtom('extendedNonPositive'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('negative'),
LogicAtom('nonPositive'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedNonzero')
LogicAtom('extendedNonzero'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedPositive')
LogicAtom('extendedPositive'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('negative'),
LogicAtom('nonPositive'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('extendedReal')
LogicAtom('extendedReal'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('imaginary'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('finite')
LogicAtom('finite'): {
LogicAtom('algebraic'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('hermitian')
LogicAtom('hermitian'): {
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('imaginary')
LogicAtom('imaginary'): {
LogicAtom('antiHermitian'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('infinite')
LogicAtom('infinite'): {
LogicAtom('algebraic'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('finite'),
LogicAtom('imaginary'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('integer')
LogicAtom('integer'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('irrational'),
LogicAtom('nonInteger'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('irrational')
LogicAtom('irrational'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('negative')
LogicAtom('negative'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('nonInteger')
LogicAtom('nonInteger'): {
LogicAtom('commutative'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('imaginary'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('nonNegative')
LogicAtom('nonNegative'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('negative'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('nonPositive')
LogicAtom('nonPositive'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('negative'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('nonzero')
LogicAtom('nonzero'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('odd')
LogicAtom('odd'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('nonInteger'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('positive')
LogicAtom('positive'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('prime')
LogicAtom('prime'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('positive'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('rational')
LogicAtom('rational'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('real'),
LogicAtom('transcendental'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('real')
LogicAtom('real'): {
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('transcendental')
LogicAtom('transcendental'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('finite'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('odd'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('zero'),
},
// facts that could determine the value of LogicAtom('zero')
LogicAtom('zero'): {
LogicAtom('algebraic'),
LogicAtom('commutative'),
LogicAtom('complex'),
LogicAtom('composite'),
LogicAtom('even'),
LogicAtom('extendedNegative'),
LogicAtom('extendedNonNegative'),
LogicAtom('extendedNonPositive'),
LogicAtom('extendedNonzero'),
LogicAtom('extendedPositive'),
LogicAtom('extendedReal'),
LogicAtom('finite'),
LogicAtom('hermitian'),
LogicAtom('imaginary'),
LogicAtom('infinite'),
LogicAtom('integer'),
LogicAtom('irrational'),
LogicAtom('negative'),
LogicAtom('nonInteger'),
LogicAtom('nonNegative'),
LogicAtom('nonPositive'),
LogicAtom('nonzero'),
LogicAtom('odd'),
LogicAtom('positive'),
LogicAtom('prime'),
LogicAtom('rational'),
LogicAtom('real'),
LogicAtom('transcendental'),
},
};