InvariantsAfterSolveLoopBody: fixes state :: "State"   and F0' :: "Literal list list"   and Vbl :: "nat set"   and F0 :: "Literal list list" assumes "getSATFlag state = UNDEF"   and "InvariantConsistent (getM state)"   and "InvariantUniq (getM state)"   and "InvariantWatchesEl (getF state) (getWatch1 state) (getWatch2 state)"   and "InvariantWatchesDiffer (getF state) (getWatch1 state) (getWatch2 state)"   and "InvariantWatchCharacterization (getF state) (getWatch1 state) (getWatch2 state) (getM state)"   and "InvariantWatchListsContainOnlyClausesFromF (getWatchList state) (getF state)"   and "InvariantWatchListsUniq (getWatchList state)"   and "InvariantWatchListsCharacterization (getWatchList state) (getWatch1 state) (getWatch2 state)"   and "InvariantUniqQ (getQ state)"   and "InvariantQCharacterization (getConflictFlag state) (getQ state) (getF state) (getM state)"   and "InvariantConflictFlagCharacterization (getConflictFlag state) (getF state) (getM state)"   and "InvariantNoDecisionsWhenConflict (getF state) (getM state) (currentLevel (getM state))"   and "InvariantNoDecisionsWhenUnit (getF state) (getM state) (currentLevel (getM state))"   and "InvariantGetReasonIsReason (getReason state) (getF state) (getM state) (set (getQ state))"   and "InvariantEquivalentZL (getF state) (getM state) F0'"   and "InvariantConflictClauseCharacterization (getConflictFlag state) (getConflictClause state) (getF state) (getM state)"   and "finite Vbl"   and "vars F0' \<subseteq> vars F0"   and "vars F0 \<subseteq> Vbl"   and "InvariantVarsM (getM state) F0 Vbl"   and "InvariantVarsQ (getQ state) F0 Vbl"   and "InvariantVarsF (getF state) F0 Vbl" shows "let state' = solve_loop_body state Vbl in (InvariantConsistent (getM state') \<and> InvariantUniq (getM state') \<and> InvariantWatchesEl (getF state') (getWatch1 state') (getWatch2 state') \<and> InvariantWatchesDiffer (getF state') (getWatch1 state') (getWatch2 state') \<and> InvariantWatchCharacterization (getF state') (getWatch1 state') (getWatch2 state') (getM state') \<and> InvariantWatchListsContainOnlyClausesFromF (getWatchList state') (getF state') \<and> InvariantWatchListsUniq (getWatchList state') \<and> InvariantWatchListsCharacterization (getWatchList state') (getWatch1 state') (getWatch2 state') \<and> InvariantQCharacterization (getConflictFlag state') (getQ state') (getF state') (getM state') \<and> InvariantConflictFlagCharacterization (getConflictFlag state') (getF state') (getM state') \<and> InvariantConflictClauseCharacterization (getConflictFlag state') (getConflictClause state') (getF state') (getM state') \<and> InvariantUniqQ (getQ state')) \<and> (InvariantNoDecisionsWhenConflict (getF state') (getM state') (currentLevel (getM state')) \<and> InvariantNoDecisionsWhenUnit (getF state') (getM state') (currentLevel (getM state'))) \<and> InvariantEquivalentZL (getF state') (getM state') F0' \<and> InvariantGetReasonIsReason (getReason state') (getF state') (getM state') (set (getQ state')) \<and> InvariantVarsM (getM state') F0 Vbl \<and> InvariantVarsQ (getQ state') F0 Vbl \<and> InvariantVarsF (getF state') F0 Vbl \<and> (state', state) \<in> terminationLessState1 (vars F0 \<union> Vbl) \<and> (getSATFlag state' = FALSE \<longrightarrow> \<not> satisfiable F0') \<and> (getSATFlag state' = TRUE \<longrightarrow> satisfiable F0')"