fact: Parameter algrec_step: forall p h s l s', (ICExec.StepStar.step_star (ICExec.init p) h s /\ ICExec.step s l s') -> (((ICExec.label_is_get l -> let n := ICExec.label_node l in forall n', algrec (ICExec.alg_state (ICExec.node_states s n)) n' = algrec (ICExec.alg_state (ICExec.node_states s' n)) n')) /\ (ICExec.label_is_put l -> let n := ICExec.label_node l in algrec (ICExec.alg_state (ICExec.node_states s' n)) n = S (algrec (ICExec.alg_state (ICExec.node_states s n)) n) /\ forall n', (not (n' = n) -> algrec (ICExec.alg_state (ICExec.node_states s n)) n' = algrec (ICExec.alg_state (ICExec.node_states s' n)) n')) /\ (ICExec.label_is_update l -> (let n := ICExec.label_node l in let n' := ICExec.label_orig_node l in let c' := ICExec.label_clock l in S (algrec (ICExec.alg_state (ICExec.node_states s n)) n') = c' /\ algrec (ICExec.alg_state (ICExec.node_states s' n)) n' = c' /\ (forall n'', not (n'' = label_orig_node l) -> algrec (ICExec.alg_state (ICExec.node_states s n)) n'' = algrec (ICExec.alg_state (ICExec.node_states s' n)) n'')))).
imports: Coq(FunctionalExtensionality Arith Lia) Coq(Arith.Peano_dec Arith.Compare_dec) Coq(Relations.Relation_Operators) Coq(List) Chapar(Predefs)