| ⊦ ∃ val1, val2. flatten(val ++ val0) = val1 ++ val2 |
⊦ ∃ val1, val2. flatten(val ++ noval) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ intval(i)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ byteval(by)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ shortval(sho)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ refval(r)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ boolval(boolvar)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ charval(jchar)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ longval(lo)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ floatval(floatvar)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ doubleval(doublevar)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ stringval(stringvar)) = val1 ++ val2
∀ val. ∃ val3, val2. flatten(val ++ val1) = val3 ++ val2, ∀ val. ∃ val1, val3. flatten(val ++ val2) = val1 ++ val3 ⊦ ∃ val4, val3. flatten(val ++ (val1 ++ val2)) = val4 ++ val3
⊦ ∃ val1, val2. flatten(val ++ typeval(ty)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ initval(istate)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ break(lbl)) = val1 ++ val2
⊦ ∃ val1, val2. flatten(val ++ continue(lbl)) = val1 ++ val2
∀ val. ∃ val3, val2. flatten(val ++ val1) = val3 ++ val2 ⊦ ∃ val3, val2. flatten(val ++ return(val1, ty)) = val3 ++ val2
⊦ ∃ val1, val2. flatten(val ++ throw(r, ty)) = val1 ++ val2
[[CONCRETESIMPRULES : ([CSIMPGEN : javavalue generated by noval, intval, byteval, shortval, refval, boolval, charval, longval, floatval, doubleval, stringval, ++, typeval, initval, break, continue, return, throw;])]]