JavaSymbolicObject implements K, Transformable, Visitable { public boolean isNormal() { if (isNormal == null) { new IsNormalFieldInitializer().visitNode(this); } return isNormal; } protected  JavaSymbolicObject(); protected  JavaSymbolicObject(Source source, Location loc);  JavaSymbolicObject(Source source, Location loc, Att att);  JavaSymbolicObject(Att att); T substituteWithBinders(
            Map<Variable, ? extends Term> substitution); T substitute(
            Map<Variable, ? extends Term> substitution); T renameVariables(); PSet<Variable> variableSet(); boolean isGround(); boolean isNormal(); boolean isConcrete(); boolean isVariable(); Set<Term> userVariableSet(GlobalContext global); Att att(); Optional<Source> source(); Optional<Location> location(); Source getSource(); Location getLocation(); void copyAttributesFrom(JavaSymbolicObject variable); int computeHashCode(); int cachedHashCode(); void addAttribute(String key, String value); void setAttributes(Att att);  }
@Test public void testIsNormal() { Variable v1 = new Variable("foo", Sort.of(KORE.Sort("bar@FOO"))); assertTrue(v1.isNormal()); KItem k1 = new KItem(KLabelConstant.of(foo, definition), KList.EMPTY, globalContext, Sort.of(KORE.Sort("bar@FOO")), true); assertTrue(k1.isNormal()); assertTrue(k1.kLabel().isNormal()); assertTrue(k1.kList().isNormal()); KItem k2 = new KItem(KLabelConstant.of(isFoo, definition), KList.EMPTY, globalContext, Sort.of(KORE.Sort("bar@FOO")), true); assertFalse(k2.isNormal()); assertTrue(k2.kLabel().isNormal()); assertTrue(k2.kList().isNormal()); KList list = (KList) KList.concatenate(k1, k2); KItem k3 = new KItem(KLabelConstant.of(foo, definition), list, globalContext, Sort.of(KORE.Sort("bar@FOO")), true); assertFalse(k3.isNormal()); assertTrue(k3.kLabel().isNormal()); assertSame(list, k3.kList()); assertFalse(list.isNormal()); assertSame(k1, list.get(0)); assertSame(k2, list.get(1)); assertTrue(k1.isNormal()); assertTrue(k1.kLabel().isNormal()); assertTrue(k1.kList().isNormal()); assertFalse(k2.isNormal()); assertTrue(k2.kLabel().isNormal()); assertTrue(k2.kList().isNormal()); }