prereq top-level property

Map<LogicAtom, Set<LogicAtom>> prereq
final

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'),
  },
};