If you fail to define the states for a variable, it won't give you a warning when you run a query (that in turn relies on the states and the formula), it'll just raise a cryptic exception (see below for stack snippet).
Caused by: java.lang.IllegalStateException: java.lang.NullPointerException
at unbbayes.prs.bn.JunctionTreeAlgorithm.reset(JunctionTreeAlgorithm.java:1817)
at unbbayes.prs.bn.JunctionTreeAlgorithm$3.onBeforePropagate(JunctionTreeAlgorithm.java:382)
at unbbayes.prs.bn.JunctionTreeAlgorithm.propagate(JunctionTreeAlgorithm.java:1846)
at unbbayes.prs.bn.JunctionTreeAlgorithm.propagate(JunctionTreeAlgorithm.java:1829)
at unbbayes.prs.mebn.ssbn.SSBN.propagateFindings(SSBN.java:186)
at unbbayes.prs.mebn.ssbn.SSBN.compileAndInitializeSSBN(SSBN.java:146)
at unbbayes.prs.mebn.ssbn.laskeyalgorithm.LaskeySSBNGenerator.compileAndInitializeSSBN(LaskeySSBNGenerator.java:298)
at unbbayes.prs.mebn.ssbn.laskeyalgorithm.LaskeySSBNGenerator.generateSSBN(LaskeySSBNGenerator.java:245)
... 81 more
Caused by: java.lang.NullPointerException
at unbbayes.prs.bn.TreeVariable.copyMarginal(TreeVariable.java:80)
at unbbayes.prs.bn.SingleEntityNetwork.copyMarginal(SingleEntityNetwork.java:1389)
at unbbayes.prs.bn.SingleEntityNetwork.initialize(SingleEntityNetwork.java:1379)
at unbbayes.prs.bn.JunctionTreeAlgorithm.reset(JunctionTreeAlgorithm.java:1810