Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.1. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use ⌘ instead of Ctrl.
[Loading ML file ring_plugin.cmxs (using legacy method) ... done]
[Loading ML file zify_plugin.cmxs (using legacy method) ... done]
[Loading ML file micromega_plugin.cmxs (using legacy method) ... done]
[Loading ML file btauto_plugin.cmxs (using legacy method) ... done]
[Loading ML file coq-itauto.plugin ... done]
From stdpp Require Import prelude.From VLSM.Lib Require Import Preamble.From VLSM.Core Require Import VLSM MessageDependencies VLSMProjections Composition Equivocation.From VLSM.Core Require Import Equivocation.FixedSetEquivocation ProjectionTraces SubProjectionTraces.Sectionsec_msg_dep_fixed_set_equivocation.Context
`(IM : index -> VLSM message)
`{FinSet message Cm}
(message_dependencies : message -> Cm)
`{FinSet index Ci}
(equivocators : Ci)
`{finite.Finite index}
`{foralli, HasBeenSentCapability (IM i)}
`{foralli, HasBeenReceivedCapability (IM i)}
`{!Irreflexive (msg_dep_happens_before message_dependencies)}
`{foralli, MessageDependencies (IM i) message_dependencies}
.Definitionequivocator_can_emit (m : message) : Prop :=
existsi, i ∈ elements equivocators /\ can_emit (preloaded_with_all_messages_vlsm (IM i)) m.Definitiondependencies_with_non_equivocating_senders_were_sentsm : Prop :=
foralldm, msg_dep_happens_before message_dependencies dm m ->
sent_by_non_equivocating IM equivocators s dm \/ equivocator_can_emit dm.Definitionmsg_dep_fixed_set_equivocation (s : composite_state IM) (m : message) :=
sent_by_non_equivocating IM equivocators s m \/
equivocator_can_emit m /\
dependencies_with_non_equivocating_senders_were_sent s m.Definitionmsg_dep_fixed_set_equivocation_constraint
(l : composite_label IM)
(som : composite_state IM * option message)
: Prop :=
from_option (msg_dep_fixed_set_equivocation som.1) True som.2.Definitionmsg_dep_fixed_set_equivocation_vlsm : VLSM message :=
composite_vlsm IM msg_dep_fixed_set_equivocation_constraint.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
can_emit
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
can_emit
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
?j ∈ elements equivocators
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
?j ∈ elements equivocators
byapply elem_of_elements, Hdm_i.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm: message Hdepm: ∀dm0 : message,
msg_dep_rel message_dependencies dm0 dm
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm0 dm_i: index Hdm_i: dm_i ∈ equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x)
∀dmm : message,
msg_dep_rel message_dependencies dm m
→ dependencies_with_non_equivocating_senders_were_sent
s m
→ dependencies_with_non_equivocating_senders_were_sent
s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x)
∀dmm : message,
msg_dep_rel message_dependencies dm m
→ dependencies_with_non_equivocating_senders_were_sent
s m
→ dependencies_with_non_equivocating_senders_were_sent
s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hdeps: dependencies_with_non_equivocating_senders_were_sent
s m dm0: message Hdm0: msg_dep_happens_before message_dependencies dm0
dm
sent_by_non_equivocating IM equivocators s dm0
∨ equivocator_can_emit dm0
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hdeps: dependencies_with_non_equivocating_senders_were_sent
s m dm0: message Hdm0: msg_dep_happens_before message_dependencies dm0
dm
msg_dep_happens_before message_dependencies dm0 m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hdeps: dependencies_with_non_equivocating_senders_were_sent
s m dm0: message Hdm0: msg_dep_happens_before message_dependencies dm0
dm
msg_dep_happens_before message_dependencies dm m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hdeps: dependencies_with_non_equivocating_senders_were_sent
s m dm0: message Hdm0: msg_dep_happens_before message_dependencies dm0
dm
msg_dep_rel message_dependencies dm m
∨ (∃y : message,
msg_dep_happens_before message_dependencies dm y
∧ msg_dep_rel message_dependencies y m)
by itauto.Qed.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
dependencies_with_non_equivocating_senders_were_sent s
m
→ ∀dm : message,
msg_dep_rel message_dependencies dm m
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
dependencies_with_non_equivocating_senders_were_sent s
m
→ ∀dm : message,
msg_dep_rel message_dependencies dm m
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
dependencies_with_non_equivocating_senders_were_sent s
m
→ ∀dm : message,
msg_dep_rel message_dependencies dm m
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m
initial_message_prop dm
∨ can_emit
(equivocators_composition_for_sent IM equivocators
s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m
initial_message_prop dm
∨ can_emit
(equivocators_composition_for_sent IM equivocators
s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m dm_i: index Hdm_i: dm_i ∈ elements equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
initial_message_prop dm
∨ can_emit
(equivocators_composition_for_sent IM equivocators
s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m dm_i: index Hdm_i: dm_i ∈ elements equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
can_emit
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m dm_i: index Hdm_i: dm_i ∈ elements equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m dm_i: index Hdm_i: dm_i ∈ elements equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm dm0: message Hdm0: msg_dep_rel message_dependencies dm0 dm
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm0
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message Hind: ∀y : message,
msg_dep_happens_before message_dependencies y
m
→ dependencies_with_non_equivocating_senders_were_sent
s y
→ ∀dm : message,
msg_dep_rel message_dependencies dm y
→ valid_message_prop
(equivocators_composition_for_sent
IM equivocators s) dm Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) Heqv: dependencies_with_non_equivocating_senders_were_sent
s m dm: message Hdm: msg_dep_rel message_dependencies dm m Hdm_hb: msg_dep_happens_before message_dependencies
dm m dm_i: index Hdm_i: dm_i ∈ elements equivocators Hemitted: can_emit
(preloaded_with_all_messages_vlsm
(IM dm_i)) dm dm0: message Hdm0: msg_dep_rel message_dependencies dm0 dm
dependencies_with_non_equivocating_senders_were_sent s
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H13: Elements index Ci equivocators: Ci H16: ∀i : index, HasBeenSentCapability (IM i) s: ∀x : index, state (IM x)
∀dmm : message,
msg_dep_rel message_dependencies dm m
→ dependencies_with_non_equivocating_senders_were_sent
s m
→ dependencies_with_non_equivocating_senders_were_sent
s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: composite_state IM m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
msg_dep_fixed_set_equivocation s m
→ strong_fixed_equivocation IM equivocators s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: composite_state IM m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
msg_dep_fixed_set_equivocation s m
→ strong_fixed_equivocation IM equivocators s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: composite_state IM m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) i: index Hi: i ∈ elements equivocators Hemit: can_emit
(preloaded_with_all_messages_vlsm (IM i)) m Heqv: dependencies_with_non_equivocating_senders_were_sent
s m
strong_fixed_equivocation IM equivocators s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: composite_state IM m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) i: index Hi: i ∈ elements equivocators Hemit: can_emit
(preloaded_with_all_messages_vlsm (IM i)) m Heqv: dependencies_with_non_equivocating_senders_were_sent
s m
(∀dm : message,
msg_dep_rel message_dependencies dm m
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm)
→ strong_fixed_equivocation IM equivocators s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: composite_state IM m: message Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) i: index Hi: i ∈ elements equivocators Hemit: can_emit
(preloaded_with_all_messages_vlsm (IM i)) m Heqv: dependencies_with_non_equivocating_senders_were_sent
s m Hdeps: ∀dm : message,
msg_dep_rel message_dependencies dm m
→ valid_message_prop
(equivocators_composition_for_sent IM
equivocators s) dm
can_emit
(equivocators_composition_for_sent IM equivocators s)
m
byapply messages_with_valid_dependences_can_be_emitted with i;
[itauto | apply elem_of_elements in Hi |].Qed.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
strong_constraint_subsumption (free_composite_vlsm IM)
msg_dep_fixed_set_equivocation_constraint
(strong_fixed_equivocation_constraint IM
equivocators)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
strong_constraint_subsumption (free_composite_vlsm IM)
msg_dep_fixed_set_equivocation_constraint
(strong_fixed_equivocation_constraint IM
equivocators)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hc: msg_dep_fixed_set_equivocation_constraint l
(s, Some m)
strong_fixed_equivocation_constraint IM equivocators l
(s, Some m)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
VLSM_projection
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
VLSM_projection
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_valid_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_transition_preservation_Some
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_transition_consistency_None
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
strong_projection_initial_state_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_valid_message_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_valid_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: sub_label_element_project IM equivocators j
(existT sub_i li) = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: sub_label_element_project IM equivocators j
(existT (dexist i Hi) li) =
Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
valid (existT (dexist i Hi) li) (sX, om)
→ valid lY
(sub_state_element_project IM equivocators j Hj sX,
om)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: match decide (j = i) with
| left e =>
Some
(eq_rect_r (λj : index, label (IM j))
li e)
| right _ => None
end = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
valid (existT (dexist i Hi) li) (sX, om)
→ valid lY
(sub_state_element_project IM equivocators j Hj sX,
om)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) Heqij: j = i HlX_pr: Some
(eq_rect_r (λj : index, label (IM j)) li
Heqij) = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
valid (existT (dexist i Hi) li) (sX, om)
→ valid lY
(sub_state_element_project IM equivocators j Hj sX,
om)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message HsY: valid_state_prop
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j
Hj sX)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_transition_preservation_Some
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: sub_label_element_project IM equivocators j
(existT sub_i li) = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: sub_label_element_project IM equivocators j
(existT (dexist i Hi) li) =
Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
→ transition lY
(sub_state_element_project IM equivocators j Hj sX,
om) =
(sub_state_element_project IM equivocators j Hj sX',
om')
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) HlX_pr: match decide (j = i) with
| left e =>
Some
(eq_rect_r (λj : index, label (IM j))
li e)
| right _ => None
end = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
→ transition lY
(sub_state_element_project IM equivocators j Hj sX,
om) =
(sub_state_element_project IM equivocators j Hj sX',
om')
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) lY: label (preloaded_with_all_messages_vlsm (IM j)) Heqij: j = i HlX_pr: Some
(eq_rect_r (λj : index, label (IM j)) li
Heqij) = Some lY sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
→ transition lY
(sub_state_element_project IM equivocators j Hj sX,
om) =
(sub_state_element_project IM equivocators j Hj sX',
om')
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators Hi: sub_index_prop (elements equivocators) j lY: label (preloaded_with_all_messages_vlsm (IM j)) sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message sj': state (IM j) _om': option message
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_transition_consistency_None
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) HlX_pr: sub_label_element_project IM equivocators j
(existT sub_i li) = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message HtX: transition (existT sub_i li) (sX, om) =
(sX', om')
sub_state_element_project IM equivocators j Hj sX' =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) HlX_pr: sub_label_element_project IM equivocators j
(existT (dexist i Hi) li) = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message HtX: transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
sub_state_element_project IM equivocators j Hj sX' =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) HlX_pr: match decide (j = i) with
| left e =>
Some
(eq_rect_r (λj : index, label (IM j))
li e)
| right _ => None
end = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message HtX: transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
sub_state_element_project IM equivocators j Hj sX' =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) Heqij: j ≠ i HlX_pr: None = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message HtX: transition (existT (dexist i Hi) li) (sX, om) =
(sX', om')
sub_state_element_project IM equivocators j Hj sX' =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) Heqij: j ≠ i HlX_pr: None = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message si': state
(sub_IM IM (elements equivocators)
(dexist i Hi)) _om': option message HtX: (state_update
(sub_IM IM (elements equivocators)) sX
(dexist i Hi) si', _om') = (
sX', om')
sub_state_element_project IM equivocators j Hj sX' =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) Heqij: j ≠ i HlX_pr: None = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message si': state
(sub_IM IM (elements equivocators)
(dexist i Hi)) _om': option message
sub_state_element_project IM equivocators j Hj
(state_update (sub_IM IM (elements equivocators)) sX
(dexist i Hi) si') =
sub_state_element_project IM equivocators j Hj sX
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) Heqij: j ≠ i HlX_pr: None = None sX: state
(equivocators_composition_for_sent IM
equivocators s) om: option message sX': state
(equivocators_composition_for_sent IM
equivocators s) om': option message si': state
(sub_IM IM (elements equivocators)
(dexist i Hi)) _om': option message
state_update (sub_IM IM (elements equivocators)) sX
(dexist i Hi) si' (dexist j Hj) = sX (dexist j Hj)
by state_update_simpl.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
strong_projection_initial_state_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_state_element_project IM equivocators j Hj)
byintros sX HsX; apply (HsX (dexist j Hj)).
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) j: index Hj: j ∈ elements equivocators
weak_projection_valid_message_preservation
(equivocators_composition_for_sent IM equivocators s)
(preloaded_with_all_messages_vlsm (IM j))
(sub_label_element_project IM equivocators j)
(sub_state_element_project IM equivocators j Hj)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message
can_emit
(equivocators_composition_for_sent IM equivocators s)
m → equivocator_can_emit m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message
can_emit
(equivocators_composition_for_sent IM equivocators s)
m → equivocator_can_emit m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
equivocator_can_emit m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
equivocator_can_emit m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
can_emit (preloaded_with_all_messages_vlsm (IM i)) m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
∃s : state (preloaded_with_all_messages_vlsm (IM i)),
can_produce
(preloaded_with_all_messages_vlsm (IM i)) s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
sub_label_element_project IM equivocators i
(existT (dexist i Hi) li) = Some li
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies s: ∀x : index, state (IM x) m: message sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
match decide (i = i) with
| left e =>
Some (eq_rect_r (λj : index, label (IM j)) li e)
| right _ => None
end = Some li
byrewrite decide_True_pi with eq_refl.Qed.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
∀s : state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)),
valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s
→ ∀dmm : message,
msg_dep_rel message_dependencies dm m
→ sent_by_non_equivocating IM equivocators s m
→ strong_fixed_equivocation IM equivocators s
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
∀s : state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)),
valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s
→ ∀dmm : message,
msg_dep_rel message_dependencies dm m
→ sent_by_non_equivocating IM equivocators s m
→ strong_fixed_equivocation IM equivocators s
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators Hsent: has_been_sent (IM i) (s i) m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
{|
vlsm_type := free_composite_vlsm IM;
vlsm_machine :=
preloaded_with_all_messages_vlsm
(free_composite_vlsm IM)
|} destination s
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i)
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hobs: message_dependencies_full_node_condition
(IM i) message_dependencies
(destination i) m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hsent: has_been_sent (IM i) (destination i) dm
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hobs: message_dependencies_full_node_condition
(IM i) message_dependencies
(destination i) m H19: ∀ (vlsm : VLSM message)
(H : HasBeenReceivedCapability vlsm)
(H0 : HasBeenSentCapability vlsm)
(H1 : HasBeenDirectlyObservedCapability vlsm)
(s : state
(preloaded_with_all_messages_vlsm vlsm)),
constrained_state_prop vlsm s
→ ∀m : message,
has_been_directly_observed vlsm s m
→ has_been_received vlsm s m
∨ has_been_sent vlsm s m
constrained_state_prop (IM i) (destination i)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hsent: has_been_sent (IM i) (destination i) dm
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hsent: has_been_sent (IM i) (destination i) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hobs: message_dependencies_full_node_condition
(IM i) message_dependencies
(destination i) m H19: ∀ (vlsm : VLSM message)
(H : HasBeenReceivedCapability vlsm)
(H0 : HasBeenSentCapability vlsm)
(H1 : HasBeenDirectlyObservedCapability vlsm)
(s : state
(preloaded_with_all_messages_vlsm vlsm)),
constrained_state_prop vlsm s
→ ∀m : message,
has_been_directly_observed vlsm s m
→ has_been_received vlsm s m
∨ has_been_sent vlsm s m
constrained_state_prop (IM i) (destination i)
byeapply in_futures_valid_fst.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index Hni: i ∉ elements equivocators destination: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Ht: input_valid_transition_item
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s_item_dm
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
in_futures
(preloaded_with_all_messages_vlsm
(free_composite_vlsm IM)) s_item_dm s
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
byapply constrained_preloaded_incl
with (constraint := strong_fixed_equivocation_constraint IM equivocators).
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: composite_state IM Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m i: index li: label (IM i) destination0: composite_state IM output: option message Hni: i ∉ elements equivocators destination: composite_state IM Hfutures: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s Hproduce: can_produce
(preloaded_with_all_messages_vlsm (IM i))
(destination i) m Hpre_futures: in_futures
(preloaded_with_all_messages_vlsm
(IM i)) (destination i)
(s i) Hreceived: has_been_received (IM i)
(destination i) dm Hdestination: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination s_item_dm: composite_state IM Hfutures_dm: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) destination0
destination Hc: strong_fixed_equivocation_constraint IM
equivocators
(l
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|})
(s_item_dm,
input
{|
l := existT i li;
input := Some dm;
destination := destination0;
output := output
|}) Hfutures_t: in_futures
(composite_vlsm IM
(strong_fixed_equivocation_constraint
IM equivocators)) s_item_dm
destination0
in_futures
{|
vlsm_type := free_composite_vlsm IM;
vlsm_machine :=
constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
|} s_item_dm s
bydo2 (eapply in_futures_trans; [done |]).Qed.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
∀s : state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)),
valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s
→ ∀dmm : message,
msg_dep_rel message_dependencies dm m
→ strong_fixed_equivocation IM equivocators s m
→ strong_fixed_equivocation IM equivocators s
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
∀s : state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)),
valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s
→ ∀dmm : message,
msg_dep_rel message_dependencies dm m
→ strong_fixed_equivocation IM equivocators s m
→ strong_fixed_equivocation IM equivocators s
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hsent: sent_by_non_equivocating IM equivocators s m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hsent: sent_by_non_equivocating IM equivocators s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm → strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm → strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m sub_j: sub_index (elements equivocators) _im: message Him: initial_message_prop _im Heqim: `(_im ↾ Him) = dm
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s m, _im: message j: index Hj: sub_index_prop (elements equivocators) j Him: initial_message_prop _im Hdm: msg_dep_rel message_dependencies
(`(_im ↾ Him)) m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
strong_fixed_equivocation IM equivocators s
(`(_im ↾ Him))
index, message: Type IM: index → VLSM message Ci: Type H13: Elements index Ci equivocators: Ci EqDecision2: EqDecision index H16: ∀i : index, HasBeenSentCapability (IM i) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) _im: message j: index Hj: sub_index_prop (elements equivocators) j
¬ initial_message_prop _im
byapply no_initial_messages_in_IM.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
valid_message_prop
(equivocators_composition_for_sent IM equivocators s)
dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
valid_state_prop
(preloaded_vlsm
(free_composite_vlsm
(sub_IM IM (elements equivocators)))
(sent_by_non_equivocating IM equivocators s)) sX'
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
composite_has_been_directly_observed
(sub_IM IM (elements equivocators)) sX' dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
valid_state_prop
(preloaded_vlsm
(free_composite_vlsm
(sub_IM IM (elements equivocators)))
(sent_by_non_equivocating IM equivocators s)) sX'
byeapply input_valid_transition_destination.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message sub_i: sub_index (elements equivocators) li: label (sub_IM IM (elements equivocators) sub_i) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT sub_i li) (
sX, iom) (sX', Some m)
composite_has_been_directly_observed
(sub_IM IM (elements equivocators)) sX' dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
has_been_directly_observed
(sub_IM IM (elements equivocators) (dexist i Hi))
(sX' (dexist i Hi)) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
can_produce
(preloaded_with_all_messages_vlsm
(sub_IM IM (elements equivocators) (dexist i Hi)))
(sX' (dexist i Hi)) m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
sub_label_element_project IM equivocators i
(existT (dexist i Hi) li) = Some ?Goal
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM s: state
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) Hs: valid_state_prop
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)) s dm, m: message Hdm: msg_dep_rel message_dependencies dm m sX: state
(equivocators_composition_for_sent IM
equivocators s) iom: option message i: index Hi: sub_index_prop (elements equivocators) i li: label
(sub_IM IM (elements equivocators)
(dexist i Hi)) sX': state
(equivocators_composition_for_sent IM
equivocators s) HtX: input_valid_transition
(equivocators_composition_for_sent IM
equivocators s) (existT (dexist i Hi) li)
(sX, iom) (sX', Some m)
match decide (i = i) with
| left e =>
Some (eq_rect_r (λj : index, label (IM j)) li e)
| right _ => None
end = Some ?Goal
byrewrite (decide_True_pi eq_refl).Qed.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
input_valid_constraint_subsumption
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
msg_dep_fixed_set_equivocation_constraint
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
input_valid_constraint_subsumption
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
msg_dep_fixed_set_equivocation_constraint
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m)
msg_dep_fixed_set_equivocation_constraint l
(s, Some m)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m)
dependencies_with_non_equivocating_senders_were_sent s
m
→ msg_dep_fixed_set_equivocation_constraint l
(s, Some m)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m)
dependencies_with_non_equivocating_senders_were_sent s
m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m)
dependencies_with_non_equivocating_senders_were_sent s
m
→ msg_dep_fixed_set_equivocation_constraint l
(s, Some m)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) Hassume: dependencies_with_non_equivocating_senders_were_sent
s m
msg_dep_fixed_set_equivocation_constraint l
(s, Some m)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m Hassume: dependencies_with_non_equivocating_senders_were_sent
s m
equivocator_can_emit m
∧ dependencies_with_non_equivocating_senders_were_sent
(s, Some m).1 m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) m Hassume: dependencies_with_non_equivocating_senders_were_sent
s m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m)
dependencies_with_non_equivocating_senders_were_sent s
m
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
sent_by_non_equivocating IM equivocators s dm
∨ equivocator_can_emit dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
strong_fixed_equivocation IM equivocators s dm
→ sent_by_non_equivocating IM equivocators s dm
∨ equivocator_can_emit dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
strong_fixed_equivocation IM equivocators s dm
→ sent_by_non_equivocating IM equivocators s dm
∨ equivocator_can_emit dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m Hemit: can_emit
(equivocators_composition_for_sent IM
equivocators s) dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hs: valid_state_prop
(constrained_vlsm (free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)) s Hc: strong_fixed_equivocation_constraint IM
equivocators l (s, Some m) dm: message Hdm: msg_dep_happens_before message_dependencies dm m
∀dmm : message,
msg_dep_rel message_dependencies dm m
→ strong_fixed_equivocation IM equivocators s m
→ strong_fixed_equivocation IM equivocators s dm
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
VLSM_incl
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
VLSM_incl
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
input_valid_constraint_subsumption
(free_composite_vlsm IM)
msg_dep_fixed_set_equivocation_constraint
(strong_fixed_equivocation_constraint IM
equivocators)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
preloaded_constraint_subsumption
(free_composite_vlsm IM)
msg_dep_fixed_set_equivocation_constraint
(strong_fixed_equivocation_constraint IM
equivocators)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies)
strong_constraint_subsumption (free_composite_vlsm IM)
msg_dep_fixed_set_equivocation_constraint
(strong_fixed_equivocation_constraint IM
equivocators)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
input_valid_constraint_subsumption
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
msg_dep_fixed_set_equivocation_constraint
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_eq
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_eq
(composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint)
(composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators))
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint
|}
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)
|}
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint
|}
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint
|}
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)
|}
byapply msg_dep_strong_fixed_equivocation_incl.
index, message: Type IM: index → VLSM message Cm: Type H: ElemOf message Cm H0: Empty Cm H1: Singleton message Cm H2: Union Cm H3: Intersection Cm H4: Difference Cm H5: Elements message Cm EqDecision0: EqDecision message H6: FinSet message Cm message_dependencies: message → Cm Ci: Type H7: ElemOf index Ci H8: Empty Ci H9: Singleton index Ci H10: Union Ci H11: Intersection Ci H12: Difference Ci H13: Elements index Ci EqDecision1: EqDecision index H14: FinSet index Ci equivocators: Ci EqDecision2: EqDecision index H15: finite.Finite index H16: ∀i : index, HasBeenSentCapability (IM i) H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hmsg_dep_happens_before_wf: wf
(msg_dep_happens_before
message_dependencies) no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(strong_fixed_equivocation_constraint IM
equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
msg_dep_fixed_set_equivocation_constraint
|}
byapply strong_msg_dep_fixed_equivocation_incl.Qed.Endsec_msg_dep_fixed_set_equivocation.Sectionsec_full_node_fixed_set_equivocation.Context
{message : Type}
`{FinSet index Ci}
`{finite.Finite index}
(IM : index -> VLSM message)
`{foralli, HasBeenSentCapability (IM i)}
`{FinSet message Cm}
(message_dependencies : message -> Cm)
(equivocators : Ci)
{validator : Type}
(A : validator -> index)
(sender : message -> option validator)
.Definitionhas_equivocating_sender (m : message)
:= existsv, sender m = Some v /\ A v ∈ equivocators.Definitionfull_node_fixed_set_equivocation (s : composite_state IM) (m : message) :=
sent_by_non_equivocating IM equivocators s m \/ has_equivocating_sender m.Definitionfull_node_fixed_set_equivocation_constraint
(l : composite_label IM)
(som : composite_state IM * option message)
: Prop :=
from_option (full_node_fixed_set_equivocation som.1) True som.2.
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender
strong_constraint_subsumption (free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
full_node_fixed_set_equivocation_constraint
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender
strong_constraint_subsumption (free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
full_node_fixed_set_equivocation_constraint
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message i: index Hi: i ∈ elements equivocators Hemit: can_emit
(preloaded_with_all_messages_vlsm (IM i)) m Hdeps: dependencies_with_non_equivocating_senders_were_sent
IM message_dependencies equivocators
(s, Some m).1 m
has_equivocating_sender m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message i: index Hi: i ∈ elements equivocators Hemit: match sender m with
| Some a => Some (A a)
| None => None
end = Some i Hdeps: dependencies_with_non_equivocating_senders_were_sent
IM message_dependencies equivocators
(s, Some m).1 m
∃v : validator,
sender m = Some v ∧ H (A v) equivocators
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message i: index Hi: i ∈ elements equivocators v: validator Hemit: Some (A v) = Some i Hdeps: dependencies_with_non_equivocating_senders_were_sent
IM message_dependencies equivocators
(s, Some m).1 m
∃v0 : validator,
Some v = Some v0 ∧ H (A v0) equivocators
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message i: index Hi: i ∈ elements equivocators v: validator Hemit: Some (A v) = Some i Hdeps: dependencies_with_non_equivocating_senders_were_sent
IM message_dependencies equivocators
(s, Some m).1 m
H (A v) equivocators
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator Hchannel: channel_authentication_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message i: index Hi: i ∈ elements equivocators v: validator Hemit: Some (A v) = Some i Hdeps: dependencies_with_non_equivocating_senders_were_sent
IM message_dependencies equivocators
(s, Some m).1 m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(fixed_equivocation_constraint IM equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(fixed_equivocation_constraint IM equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
byapply Fixed_incl_StrongFixed.
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(strong_fixed_equivocation_constraint IM
equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine := ?MY
|}
byeapply strong_msg_dep_fixed_equivocation_incl.
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators);
vlsm_machine :=
constrained_vlsm_machine
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
input_valid_constraint_subsumption
(free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
full_node_fixed_set_equivocation_constraint
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
preloaded_constraint_subsumption
(free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
full_node_fixed_set_equivocation_constraint
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender
strong_constraint_subsumption (free_composite_vlsm IM)
(msg_dep_fixed_set_equivocation_constraint IM
message_dependencies equivocators)
full_node_fixed_set_equivocation_constraint
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender
input_valid_constraint_subsumption
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
(fixed_equivocation_constraint IM equivocators)
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender
input_valid_constraint_subsumption
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
(fixed_equivocation_constraint IM equivocators)
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid l (s, Some m) Hsent: sent_by_non_equivocating IM equivocators
(s, Some m).1 m
composite_has_been_directly_observed IM s m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid l (s, Some m) Heqv: has_equivocating_sender m
can_emit
(equivocators_composition_for_directly_observed IM
equivocators s) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid l (s, Some m) Hsent: sent_by_non_equivocating IM equivocators
(s, Some m).1 m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender l: label (free_composite_vlsm IM) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid l (s, Some m) Heqv: has_equivocating_sender m
can_emit
(equivocators_composition_for_directly_observed IM
equivocators s) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ equivocators
can_emit
(equivocators_composition_for_directly_observed IM
equivocators s) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
(equivocators_composition_for_directly_observed IM
equivocators s) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
VLSM_incl_part ?MX
(preloaded_vlsm_machine
(free_equivocating_vlsm_composition IM
equivocators)
(composite_has_been_directly_observed IM s))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
{|
vlsm_type :=
free_equivocating_vlsm_composition IM
equivocators;
vlsm_machine := ?MX
|} m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
VLSM_incl_part ?MX
(preloaded_vlsm_machine
(free_equivocating_vlsm_composition IM
equivocators)
(composite_has_been_directly_observed IM s))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
∀m0 : message,
composite_has_been_directly_observed IM s m0
∨ m0 ∈ message_dependencies m
→ composite_has_been_directly_observed IM s m0
∨ valid_message_prop
(preloaded_vlsm
(free_equivocating_vlsm_composition IM
equivocators)
(composite_has_been_directly_observed IM s))
m0
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators m0: message Hdep_m0: m0 ∈ message_dependencies m
composite_has_been_directly_observed IM s m0
∨ valid_message_prop
(preloaded_vlsm
(free_equivocating_vlsm_composition IM
equivocators)
(composite_has_been_directly_observed IM s)) m0
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators m0: message Hdep_m0: m0 ∈ message_dependencies m
has_been_directly_observed (IM i) (s i) m0
byeapply Hfull; [apply Hv |].
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
{|
vlsm_type :=
free_equivocating_vlsm_composition IM
equivocators;
vlsm_machine :=
preloaded_vlsm
(free_equivocating_vlsm_composition IM
equivocators)
(λdm : message,
composite_has_been_directly_observed IM s
dm ∨ dm ∈ message_dependencies m)
|} m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
VLSM_embedding ?X
{|
vlsm_type :=
free_equivocating_vlsm_composition IM
equivocators;
vlsm_machine :=
preloaded_vlsm
(free_equivocating_vlsm_composition IM
equivocators)
(λdm : message,
composite_has_been_directly_observed IM s
dm ∨ dm ∈ message_dependencies m)
|} ?label_project?state_project
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit ?X m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
VLSM_embedding ?X
{|
vlsm_type :=
free_equivocating_vlsm_composition IM
equivocators;
vlsm_machine :=
preloaded_vlsm
(free_equivocating_vlsm_composition IM
equivocators)
(λdm : message,
composite_has_been_directly_observed IM s
dm ∨ dm ∈ message_dependencies m)
|} ?label_project?state_project
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
(preloaded_vlsm (IM (A j))
(λdm : message, dm ∈ message_dependencies m)) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit (preloaded_with_all_messages_vlsm (IM (A j)))
m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
(∃k : index,
can_emit (preloaded_with_all_messages_vlsm (IM k))
m)
→ can_emit
(preloaded_with_all_messages_vlsm (IM (A j))) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
∃k : index,
can_emit (preloaded_with_all_messages_vlsm (IM k)) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
(∃k : index,
can_emit (preloaded_with_all_messages_vlsm (IM k))
m)
→ can_emit
(preloaded_with_all_messages_vlsm (IM (A j))) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators k: index Hk: can_emit
(preloaded_with_all_messages_vlsm (IM k)) m
can_emit (preloaded_with_all_messages_vlsm (IM (A j)))
m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators k: index Hk: can_emit
(preloaded_with_all_messages_vlsm (IM k)) m
k = A j
bysymmetry; eapply Hsender_safety.
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
∃k : index,
can_emit (preloaded_with_all_messages_vlsm (IM k)) m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
(preloaded_with_all_messages_vlsm
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint))
m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message Hm: option_valid_message_prop
(constrained_vlsm (free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint)
(Some m) Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|} m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender i: index li: label (IM i) s: state (free_composite_vlsm IM) m: message k: index im: message Him: initial_message_prop im Heqm: `(im ↾ Him) = m Hv: valid (existT i li) (s, Some m) j: validator Hsender: sender m = Some j HAj: A j ∈ elements equivocators
can_emit
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|} m
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender
VLSM_incl
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender
VLSM_incl
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies Hsender_safety: sender_safety_alt_prop IM A sender
input_valid_constraint_subsumption
(free_composite_vlsm IM)
full_node_fixed_set_equivocation_constraint
(fixed_equivocation_constraint IM equivocators)
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_eq
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_eq
(composite_vlsm IM
full_node_fixed_set_equivocation_constraint)
(composite_vlsm IM
(fixed_equivocation_constraint IM equivocators))
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|}
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators)
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|}
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators)
|}
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
sender_safety_alt_prop IM A sender
byapply channel_authentication_sender_safety.
message, index, Ci: Type H: ElemOf index Ci H0: Empty Ci H1: Singleton index Ci H2: Union Ci H3: Intersection Ci H4: Difference Ci H5: Elements index Ci EqDecision0: EqDecision index H6: FinSet index Ci EqDecision1: EqDecision index H7: finite.Finite index IM: index → VLSM message H8: ∀i : index, HasBeenSentCapability (IM i) Cm: Type H9: ElemOf message Cm H10: Empty Cm H11: Singleton message Cm H12: Union Cm H13: Intersection Cm H14: Difference Cm H15: Elements message Cm EqDecision2: EqDecision message H16: FinSet message Cm message_dependencies: message → Cm equivocators: Ci validator: Type A: validator → index sender: message → option validator no_initial_messages_in_IM: no_initial_messages_in_IM_prop
IM H17: ∀i : index, HasBeenReceivedCapability (IM i) Irreflexive0: Irreflexive
(msg_dep_happens_before
message_dependencies) H18: ∀i : index,
MessageDependencies (IM i)
message_dependencies Hchannel: channel_authentication_prop IM A sender Hfull: ∀i : index,
message_dependencies_full_node_condition_prop
(IM i) message_dependencies
VLSM_incl
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
(fixed_equivocation_constraint IM equivocators)
|}
{|
vlsm_type :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint;
vlsm_machine :=
composite_vlsm IM
full_node_fixed_set_equivocation_constraint
|}