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 Coq Require Import FinFun FunctionalExtensionality. From stdpp Require Import prelude finite. From VLSM.Lib Require Import Preamble. From VLSM.Core Require Import VLSM VLSMProjections Composition Validator ProjectionTraces. From VLSM.Core Require Import SubProjectionTraces Equivocation Equivocation.NoEquivocation.

Core: Fixed Set Equivocation

In this module, we define fixed equivocation for the regular VLSM composition.
Assuming that a only a fixed subset of the components (here called equivocating) are allowed to equivocate, inspired by the results leading to Lemma equivocators_valid_trace_from_project which links state equivocation to free composition, we can say that a message can be produced by components allowed to equivocate, if it can be produced by their free composition free_equivocating_vlsm_composition preloaded with the current information (messages) available to it at the moment of production.
Section sec_fixed_equivocation_without_fullnode.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  `{forall i : index, HasBeenReceivedCapability (IM i)}
  (equivocating : Ci)
  .
free_equivocating_vlsm_composition is the free composition of the subset of components which are allowed to equivocate.
Definition free_equivocating_vlsm_composition : VLSM message :=
  free_composite_vlsm (sub_IM IM (elements equivocating)).
preloaded_free_equivocating_vlsm_composition preloads the free composition of equivocating components all with the messages given by the messageSet.
Definition preloaded_free_equivocating_vlsm_composition
  (messageSet : message -> Prop)
  := preloaded_vlsm free_equivocating_vlsm_composition messageSet.
Given a composite state s, we define the composition of equivocators preloaded with the messages directly observed in s.
Definition equivocators_composition_for_directly_observed s
  := preloaded_free_equivocating_vlsm_composition (composite_has_been_directly_observed IM s).
The fixed equivocation constraint for a regular composition stipulates that a message can be received either if it has_been_directly_observed or it can be emitted by the free composition of equivocators preloaded with the messages directly observed in the current state.
Definition fixed_equivocation s m
  := composite_has_been_directly_observed IM s m \/
    can_emit (equivocators_composition_for_directly_observed s) m.

Definition fixed_equivocation_constraint
  (l : composite_label IM)
  (som : composite_state IM * option message)
  : Prop
  :=
  let (s, om) := som in
  from_option (fixed_equivocation s) True om.
Composition of regular VLSMs under the fixed_equivocation_constraints.
In the remainder of this module we will refer to this as the Fixed VLSM.
Definition fixed_equivocation_vlsm_composition : VLSM message
  := composite_vlsm IM fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

VLSM_incl fixed_equivocation_vlsm_composition (free_composite_vlsm IM)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

VLSM_incl fixed_equivocation_vlsm_composition (free_composite_vlsm IM)
by apply VLSM_incl_constrained_vlsm. Qed.

A (seemingly) stronger definition for fixed-set equivocation

A seemingly stronger fixed equivocation constraint requires that a received message either has_been_sent by a non-equivocating component or it can be emitted by the free composition of equivocators preloaded with messages which have been sent by non-equivocating components.
We say seemingly because, as shown by the Fixed_eq_StrongFixed result, the compositions constrained by the two fixed_equivocation_constraints are trace-equivalent.
Section sec_strong_fixed_equivocation.

Definition sent_by_non_equivocating s m
  := exists i, i ∉ elements equivocating /\ has_been_sent (IM i) (s i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

RelDecision sent_by_non_equivocating
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

RelDecision sent_by_non_equivocating
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

Decision (sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

Exists (λ i : index, has_been_sent (IM i) (s i) m) (filter (λ i : index, i ∉ elements equivocating) (enum index)) ↔ sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Decision (Exists (λ i : index, has_been_sent (IM i) (s i) m) (filter (λ i : index, i ∉ elements equivocating) (enum index)))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

Exists (λ i : index, has_been_sent (IM i) (s i) m) (filter (λ i : index, i ∉ elements equivocating) (enum index)) ↔ sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

( x : index, x ∈ filter (λ i : index, i ∉ elements equivocating) (enum index) ∧ has_been_sent (IM x) (s x) m) ↔ sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

x : index, x ∈ filter (λ i : index, i ∉ elements equivocating) (enum index) ∧ has_been_sent (IM x) (s x) m ↔ (x ∉ elements equivocating) ∧ has_been_sent (IM x) (s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
i: index

i ∈ filter (λ i : index, i ∉ elements equivocating) (enum index) ∧ has_been_sent (IM i) (s i) m ↔ (i ∉ elements equivocating) ∧ has_been_sent (IM i) (s i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
i: index

((i ∉ elements equivocating) ∧ i ∈ enum index) ∧ has_been_sent (IM i) (s i) m ↔ (i ∉ elements equivocating) ∧ has_been_sent (IM i) (s i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
i: index

(i ∉ elements equivocating) ∧ i ∈ enum index ↔ i ∉ elements equivocating
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
i: index
H10: i ∉ elements equivocating

i ∈ enum index
by apply elem_of_enum.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

Decision (Exists (λ i : index, has_been_sent (IM i) (s i) m) (filter (λ i : index, i ∉ elements equivocating) (enum index)))
by apply Exists_dec; intro i; apply has_been_sent_dec. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating s m

composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating s m

composite_has_been_sent IM s m
by destruct Hsent as [i [Hi Hsent]]; exists i. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating s m

composite_has_been_sent IM s m
by apply sent_by_non_equivocating_are_sent. Qed.
Given a composite state s, we define the composition of equivocators preloaded with the messages sent by non-equivocating components in s.
Definition equivocators_composition_for_sent s
  := preloaded_free_equivocating_vlsm_composition (sent_by_non_equivocating s).

Definition strong_fixed_equivocation s m
  := sent_by_non_equivocating s m \/
    can_emit (equivocators_composition_for_sent s) m.

Definition strong_fixed_equivocation_constraint
  (l : composite_label IM)
  (som : composite_state IM * option message)
  : Prop
  :=
  let (s, om) := som in
  from_option (strong_fixed_equivocation s) True om.

Definition strong_fixed_equivocation_vlsm_composition : VLSM message
  := composite_vlsm IM strong_fixed_equivocation_constraint.
The composition of equivocators preloaded with only the messages sent by non-equivocators is included in that preloaded with all the directly observed messages.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
base_s: x : index, state (IM x)

VLSM_incl (equivocators_composition_for_sent base_s) (equivocators_composition_for_directly_observed base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
base_s: x : index, state (IM x)

VLSM_incl (equivocators_composition_for_sent base_s) (equivocators_composition_for_directly_observed base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
base_s: x : index, state (IM x)

m : message, sent_by_non_equivocating base_s m → composite_has_been_directly_observed IM base_s m
by apply sent_by_non_equivocating_are_directly_observed. Qed.
strong_fixed_equivocation_constraint is stronger than the fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

strong_fixed_equivocation s m → fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

strong_fixed_equivocation s m → fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hobs: sent_by_non_equivocating s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent s) m
can_emit (equivocators_composition_for_directly_observed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hobs: sent_by_non_equivocating s m

composite_has_been_directly_observed IM s m
by apply sent_by_non_equivocating_are_directly_observed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent s) m

can_emit (equivocators_composition_for_directly_observed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

can_emit (equivocators_composition_for_sent s) m → can_emit (equivocators_composition_for_directly_observed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
s: x : index, state (IM x)
m: message

VLSM_incl_part (preloaded_vlsm_machine free_equivocating_vlsm_composition (sent_by_non_equivocating s)) (preloaded_vlsm_machine free_equivocating_vlsm_composition (composite_has_been_directly_observed IM s))
by apply Equivocators_Strong_Fixed_incl. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

strong_constraint_subsumption (free_composite_vlsm IM) strong_fixed_equivocation_constraint fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

strong_constraint_subsumption (free_composite_vlsm IM) strong_fixed_equivocation_constraint fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
l: label (free_composite_vlsm IM)
s: state (free_composite_vlsm IM)
m: message
Hc: strong_fixed_equivocation_constraint l (s, Some m)

fixed_equivocation_constraint l (s, Some m)
by apply strong_fixed_equivocation_subsumption. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

VLSM_incl strong_fixed_equivocation_vlsm_composition fixed_equivocation_vlsm_composition
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

VLSM_incl strong_fixed_equivocation_vlsm_composition fixed_equivocation_vlsm_composition
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

input_valid_constraint_subsumption (free_composite_vlsm IM) strong_fixed_equivocation_constraint fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

preloaded_constraint_subsumption (free_composite_vlsm IM) strong_fixed_equivocation_constraint fixed_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci

strong_constraint_subsumption (free_composite_vlsm IM) strong_fixed_equivocation_constraint fixed_equivocation_constraint
by apply strong_fixed_equivocation_constraint_subsumption. Qed. End sec_strong_fixed_equivocation. End sec_fixed_equivocation_without_fullnode.

Extending the set of components allowed to equivocate

Section sec_fixed_equivocation_index_incl.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  `{forall i : index, HasBeenReceivedCapability (IM i)}
  (indices1 indices2 : Ci)
  (Hincl : elements indices1 ⊆ elements indices2)
  .

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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
s: state (composite_type IM)

VLSM_embedding (equivocators_composition_for_directly_observed IM indices1 s) (equivocators_composition_for_directly_observed IM indices2 s) (lift_sub_incl_label IM (elements indices1) (elements indices2) Hincl) (lift_sub_incl_state IM (elements indices1) (elements indices2))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
s: state (composite_type IM)

VLSM_embedding (equivocators_composition_for_directly_observed IM indices1 s) (equivocators_composition_for_directly_observed IM indices2 s) (lift_sub_incl_label IM (elements indices1) (elements indices2) Hincl) (lift_sub_incl_state IM (elements indices1) (elements indices2))
by apply lift_sub_incl_preloaded_embedding. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

(s : composite_state IM) (m : message), fixed_equivocation IM indices1 s m → fixed_equivocation IM indices2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

(s : composite_state IM) (m : message), fixed_equivocation IM indices1 s m → fixed_equivocation IM indices2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
s: composite_state IM
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM indices1 s) m

fixed_equivocation IM indices2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
s: composite_state IM
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM indices1 s) m

can_emit (equivocators_composition_for_directly_observed IM indices2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
s: composite_state IM
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM indices1 s) m
Hproj: VLSM_embedding (equivocators_composition_for_directly_observed IM indices1 s) (equivocators_composition_for_directly_observed IM indices2 s) (lift_sub_incl_label IM (elements indices1) (elements indices2) Hincl) (lift_sub_incl_state IM (elements indices1) (elements indices2))

can_emit (equivocators_composition_for_directly_observed IM indices2 s) m
by apply (VLSM_embedding_can_emit Hproj) in Hemit. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

strong_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM indices1) (fixed_equivocation_constraint IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

strong_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM indices1) (fixed_equivocation_constraint IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2
l: label (free_composite_vlsm IM)
s: state (free_composite_vlsm IM)
m: message

fixed_equivocation_constraint IM indices1 l (s, Some m) → fixed_equivocation_constraint IM indices2 l (s, Some m)
by apply fixed_equivocation_index_incl_subsumption. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

VLSM_incl (fixed_equivocation_vlsm_composition IM indices1) (fixed_equivocation_vlsm_composition IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

VLSM_incl (fixed_equivocation_vlsm_composition IM indices1) (fixed_equivocation_vlsm_composition IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

input_valid_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM indices1) (fixed_equivocation_constraint IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

preloaded_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM indices1) (fixed_equivocation_constraint IM indices2)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
indices1, indices2: Ci
Hincl: elements indices1 ⊆ elements indices2

strong_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM indices1) (fixed_equivocation_constraint IM indices2)
by apply fixed_equivocation_constraint_index_incl_subsumption. Qed. End sec_fixed_equivocation_index_incl.

Restricting Fixed valid traces to only the equivocators

In this section we study the properties of Fixed valid traces when projected to the composition of equivocator components.
The main result, Lemma fixed_finite_valid_trace_sub_projection is a strengthening of Lemma finite_valid_trace_sub_projection for the fixed_equivocation_constraint, showing that, when restricting a Fixed valid trace to only the transitions belonging to the equivocators, the obtained trace is valid for the composition of equivocators preloaded only with those messages sent by the non-equivocators in the original trace.
Section sec_fixed_equivocator_sub_projection.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i, HasBeenSentCapability (IM i)}
  `{forall i, HasBeenReceivedCapability (IM i)}
  (equivocators : Ci)
  (Fixed := fixed_equivocation_vlsm_composition IM equivocators)
  (StrongFixed := strong_fixed_equivocation_vlsm_composition IM equivocators)
  (Free := free_composite_vlsm IM)
  (PreFree := preloaded_with_all_messages_vlsm Free)
  .

Definition Fixed_incl_Free : VLSM_incl Fixed Free := VLSM_incl_constrained_vlsm _ _.

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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message

VLSM_incl (preloaded_with_all_messages_vlsm Fixed) (preloaded_with_all_messages_vlsm Free)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message

VLSM_incl (preloaded_with_all_messages_vlsm Fixed) (preloaded_with_all_messages_vlsm Free)
exact (preloaded_constraint_subsumption_incl_free _ _). Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message

VLSM_incl StrongFixed Free
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message

VLSM_incl StrongFixed Free
exact (VLSM_incl_constrained_vlsm _ _). Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s

m : message, sent_by_non_equivocating IM equivocators s m → sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s

m : message, sent_by_non_equivocating IM equivocators s m → sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m

sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m

has_been_sent (IM i) (base_s i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m

oracle_stepwise_props ?selector (has_been_sent (IM i))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m
in_futures (preloaded_with_all_messages_vlsm (IM i)) (s i) (base_s i)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m

oracle_stepwise_props ?selector (has_been_sent (IM i))
by apply has_been_sent_stepwise_props.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s i) m

in_futures (preloaded_with_all_messages_vlsm (IM i)) (s i) (base_s i)
by apply (VLSM_projection_in_futures (preloaded_component_projection IM i)). Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s

m : message, can_emit (equivocators_composition_for_sent IM equivocators s) m → can_emit (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s

m : message, can_emit (equivocators_composition_for_sent IM equivocators s) m → can_emit (equivocators_composition_for_sent IM equivocators base_s) m
by apply VLSM_incl_can_emit, preloaded_vlsm_incl, in_futures_preserves_sent_by_non_equivocating. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hsent: sent_by_non_equivocating IM equivocators s m

sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hemit: can_emit (equivocators_composition_for_sent IM equivocators s) m
can_emit (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hsent: sent_by_non_equivocating IM equivocators s m

sent_by_non_equivocating IM equivocators base_s m
by eapply in_futures_preserves_sent_by_non_equivocating.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, base_s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hemit: can_emit (equivocators_composition_for_sent IM equivocators s) m

can_emit (equivocators_composition_for_sent IM equivocators base_s) m
by eapply in_futures_preserves_can_emit_by_equivocators_composition_for_sent. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hstrong: strong_fixed_equivocation IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hstrong: strong_fixed_equivocation IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hobs: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m
valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hobs: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) m
by apply initial_message_is_valid; right.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) m
by apply emitted_messages_are_valid in Hemit. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m
Hobs: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m
valid_message_prop (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m
Hobs: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) m
by apply initial_message_is_valid; right.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: state PreFree
Hfuture_s: in_futures PreFree s base_s
m: message
Hstrong: strong_fixed_equivocation IM equivocators s m
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m

valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) m
by apply emitted_messages_are_valid in Hemit. Qed. Section sec_fixed_finite_valid_trace_sub_projection_helper_lemmas.
The results in this section are not meant to be used directly. They are just sub-lemmas of fixed_finite_valid_trace_sub_projection_helper.
We make an assumption (Hobs_s_protocol) which is later shown to hold for all Fixed valid states.
We then restate (some of) these lemmas without the extra assumption.
Context
  (base_s s : composite_state IM)
  (Hobs_s_protocol : forall m, composite_has_been_directly_observed IM s m ->
    strong_fixed_equivocation IM equivocators base_s m)
  .
See the lemma fixed_input_has_strong_fixed_equivocation below.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hv: input_valid Fixed l (s, Some m)

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hv: input_valid Fixed l (s, Some m)

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hobs: composite_has_been_directly_observed IM s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM equivocators s) m
strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hobs: composite_has_been_directly_observed IM s m

strong_fixed_equivocation IM equivocators base_s m
by apply Hobs_s_protocol.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM equivocators s) m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
l: label Fixed
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM equivocators s) m

can_emit (equivocators_composition_for_sent IM equivocators base_s) m
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hemit: can_emit (equivocators_composition_for_directly_observed IM equivocators s) m

can_emit (equivocators_composition_for_sent IM equivocators base_s) m
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message

can_emit (equivocators_composition_for_directly_observed IM equivocators s) m → can_emit (equivocators_composition_for_sent IM equivocators base_s) m
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message

VLSM_incl_part (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s))
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
HmX: initial_message_prop m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Him: initial_message_prop m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hobs: composite_has_been_directly_observed IM s m0
valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Him: initial_message_prop m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
by apply initial_message_is_valid; left.
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hobs: composite_has_been_directly_observed IM s m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hsent: sent_by_non_equivocating IM equivocators base_s m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m0
valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hsent: sent_by_non_equivocating IM equivocators base_s m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
by apply initial_message_is_valid; right.
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
s0: label {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
s1: state {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |}
m0: message
Hv: input_valid {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ composite_has_been_directly_observed IM s m; transition := transition; valid := valid |} |} s0 (s1, Some m0)
HsY: valid_state_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} (id s1)
Hemit: can_emit (equivocators_composition_for_sent IM equivocators base_s) m0

valid_message_prop {| vlsm_type := {| state := composite_state (sub_IM IM (elements equivocators)); label := composite_label (sub_IM IM (elements equivocators)) |}; vlsm_machine := {| initial_state_prop := initial_state_prop; s0 := VLSM.s0 (free_equivocating_vlsm_composition IM equivocators) (free_equivocating_vlsm_composition IM equivocators); initial_message_prop := λ m : message, initial_message_prop m ∨ sent_by_non_equivocating IM equivocators base_s m; transition := transition; valid := valid |} |} m0
by apply emitted_messages_are_valid. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
l: {n : index & label (IM n)}
e: sub_index_prop (elements equivocators) (projT1 l)
iom, oom: option message
sf: state Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) l e) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
l: {n : index & label (IM n)}
e: sub_index_prop (elements equivocators) (projT1 l)
iom, oom: option message
sf: state Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) l e) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) (projT1 (existT i li))
iom, oom: option message
sf: state Fixed
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)
option_valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) iom
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)
valid (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)
transition (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom) = (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
done.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

option_valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) iom
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid Fixed (existT i li) (s, iom)

option_valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) iom
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
im: message
oom: option message
sf: composite_state IM
Ht: input_valid Fixed (existT i li) (s, Some im)

option_valid_message_prop (equivocators_composition_for_sent IM equivocators base_s) (Some im)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
im: message
oom: option message
sf: composite_state IM
Ht: input_valid Fixed (existT i li) (s, Some im)

strong_fixed_equivocation IM equivocators base_s im
by apply (fixed_input_has_strong_fixed_equivocation_helper _ _ Ht).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

valid (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom)
by apply Ht.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: input_valid_transition Fixed (existT i li) (s, iom) ( sf, oom)

transition (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom) = (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: (let (si', om') := transition li (s i, iom) in (state_update IM s i si', om')) = ( sf, oom)

transition (composite_label_sub_projection IM (elements equivocators) (existT i li) e) (composite_state_sub_projection IM (elements equivocators) s, iom) = (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
Ht: (let (si', om') := transition li (s i, iom) in (state_update IM s i si', om')) = ( sf, oom)

(let (si', om') := transition li (s i, iom) in (state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si', om')) = (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
si': state (IM i)
om': option message
Ht: (state_update IM s i si', om') = (sf, oom)

(state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si', om') = (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
si': state (IM i)
om': option message

(state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si', oom) = (composite_state_sub_projection IM (elements equivocators) (state_update IM s i si'), oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
i: index
li: label (IM i)
e: sub_index_prop (elements equivocators) i
iom, oom: option message
sf: composite_state IM
si': state (IM i)
om': option message

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si')
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si')
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)

x : sub_index (elements equivocators), state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' x = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si') x
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)
sub_j: sub_index (elements equivocators)

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' sub_j = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si') sub_j
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)
sub_j: sub_index (elements equivocators)
j: index
Hj: sub_index_prop (elements equivocators) j
Heqsub_j: sub_j = dexist j Hj

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' sub_j = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si') sub_j
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)
j: index
Hj: sub_index_prop (elements equivocators) j

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' (dexist j Hj) = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si') (dexist j Hj)
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
equivocators: Ci
s: composite_state IM
i: index
e: sub_index_prop (elements equivocators) i
si': state (IM i)
j: index
Hj: sub_index_prop (elements equivocators) j

state_update (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) s) (dexist i e) si' (dexist j Hj) = state_update IM s i si' (`(dexist j Hj))
by destruct (decide (i = j)); subst; state_update_simpl. Qed.
See the lemma fixed_output_has_strong_fixed_equivocation below.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)

strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)

strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
e: projT1 l ∈ elements equivocators

strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
e: projT1 l ∈ elements equivocators

strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
e: projT1 l ∈ elements equivocators
Ht: input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) l e) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, Some om)

strong_fixed_equivocation IM equivocators base_s om
by right; eexists _, _, _.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

strong_fixed_equivocation IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

sent_by_non_equivocating IM equivocators base_s om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

(projT1 l ∉ elements equivocators) ∧ has_been_sent (IM (projT1 l)) (base_s (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
Hfuture: in_futures PreFree sf base_s
l: label Fixed
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

has_been_sent (IM (projT1 l)) (base_s (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

has_been_sent (IM (projT1 l)) (base_s (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators

has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)

has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)

composite_project_label IM (projT1 l) l = Some (projT2 l)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l ( s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) (s (projT1 l), im) (s' (projT1 l), om)
has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)

composite_project_label IM (projT1 l) l = Some (projT2 l)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)

match decide (projT1 l = projT1 l) with | left e => Some (eq_rect_r (λ n : index, label (IM n)) (projT2 l) e) | right _ => None end = Some (projT2 l)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)
e: projT1 l = projT1 l

Some (eq_rect_r (λ n : index, label (IM n)) (projT2 l) e) = Some (projT2 l)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: composite_project_label IM (projT1 l) l = Some (projT2 l) → (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l (s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s, im) ((λ s0 : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)), s0 (projT1 l)) s', om)
e: projT1 l = projT1 l

eq_refl = e
by apply Eqdep_dec.UIP_dec.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: (s : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (im : option message) (s' : state (preloaded_with_all_messages_vlsm (free_composite_vlsm IM))) (om : option message), input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) l ( s, im) (s', om) → input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) (s (projT1 l), im) (s' (projT1 l), om)

has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
base_s, s: composite_state IM
Hobs_s_protocol: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hs_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
sf: state PreFree
l: label Fixed
Hfuture: in_futures (preloaded_with_all_messages_vlsm (IM (projT1 l))) (sf (projT1 l)) (base_s (projT1 l))
iom: option message
om: message
Ht: input_valid_transition {| vlsm_type := constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators); vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)
n: projT1 l ∉ elements equivocators
Hproject: input_valid_transition (preloaded_with_all_messages_vlsm (IM (projT1 l))) (projT2 l) (s (projT1 l), iom) (sf (projT1 l), Some om)

has_been_sent (IM (projT1 l)) (sf (projT1 l)) om
by apply (has_been_sent_step_update Hproject); left. Qed. End sec_fixed_finite_valid_trace_sub_projection_helper_lemmas.
Using the lemmas above we can now prove (by induction) a generic result, which has as part of the conclusion the "observability implies strong_fixed_equivocation" hypothesis assumed in the above section.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
base_s: state PreFree
Hfuture: in_futures PreFree s base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
base_s: state PreFree
Hfuture: in_futures PreFree s base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) si) (finite_trace_sub_projection IM (elements equivocators) []) ∧ ( m : message, composite_has_been_directly_observed IM si m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) si) (finite_trace_sub_projection IM (elements equivocators) []) ∧ ( m : message, composite_has_been_directly_observed IM si m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) si) (finite_trace_sub_projection IM (elements 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s
m : message, composite_has_been_directly_observed IM si m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) si) (finite_trace_sub_projection IM (elements 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: composite_initial_state_prop (sub_IM IM (elements equivocators)) (composite_state_sub_projection IM (elements equivocators) si)
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si)
by apply initial_state_is_valid.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s

m : message, composite_has_been_directly_observed IM si m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s
m: message
Hobs: composite_has_been_directly_observed IM si m

False
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si: state Fixed
Hsi: initial_state_prop si
base_s: state PreFree
Hfuture: in_futures PreFree si base_s
m: message
Hobs: composite_has_been_directly_observed IM si m

has_been_directly_observed Free si ?m
by apply composite_has_been_directly_observed_free_iff.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)

in_futures PreFree s base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)

in_futures PreFree s base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
tr': list transition_item
Htr': finite_valid_trace_from_to PreFree sf base_s tr'
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)

in_futures PreFree s base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
tr': list transition_item
Htr': finite_valid_trace_from_to PreFree sf base_s tr'
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Htr'': finite_valid_trace_from_to PreFree s base_s ({| l := l; input := iom; destination := sf; output := oom |} :: tr')

in_futures PreFree s base_s
by eexists.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
IHHtr: in_futures PreFree s base_s → finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m)
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}])) ∧ ( m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m

m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m

m : message, composite_has_been_directly_observed IM sf m → strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hobs: composite_has_been_directly_observed IM sf m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hobs: composite_has_been_directly_observed IM sf m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hobs: (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hitem: iom = Some m ∨ oom = Some m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hitem: iom = Some m ∨ oom = Some m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
m: message
Hitem: iom = Some m ∨ oom = Some m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
oom: option message
l: label Fixed
m: message
Ht: input_valid_transition Fixed l ( s, Some m) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hpre_t: has_been_directly_observed Free sf m ↔ (Some m = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
iom: option message
l: label Fixed
m: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some m)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ Some m = Some m) ∨ has_been_directly_observed Free s m
strong_fixed_equivocation IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
oom: option message
l: label Fixed
m: message
Ht: input_valid_transition Fixed l ( s, Some m) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hpre_t: has_been_directly_observed Free sf m ↔ (Some m = Some m ∨ oom = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_s m
by eapply fixed_input_has_strong_fixed_equivocation_helper; destruct Ht.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed s
sf: state Fixed
iom: option message
l: label Fixed
m: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some m)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hpre_t: has_been_directly_observed Free sf m ↔ (iom = Some m ∨ Some m = Some m) ∨ has_been_directly_observed Free s m

strong_fixed_equivocation IM equivocators base_s m
by eapply fixed_output_has_strong_fixed_equivocation_helper; cycle 3.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) (tr ++ [{| l := l; input := iom; destination := sf; output := oom |}]))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) tr ++ match match match decide (projT1 l ∈ elements equivocators) with | left i_in => Some (composite_label_sub_projection IM (elements equivocators) l i_in) | right _ => None end with | Some lY => Some {| l := lY; input := iom; destination := composite_state_sub_projection IM (elements equivocators) sf; output := oom |} | None => None end with | Some y => [y] | None => [] end)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∈ elements equivocators

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) tr ++ [{| l := composite_label_sub_projection IM (elements equivocators) l Hl; input := iom; destination := composite_state_sub_projection IM (elements equivocators) sf; output := oom |}])
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∉ elements equivocators
finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) tr ++ [])
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∈ elements equivocators

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) tr ++ [{| l := composite_label_sub_projection IM (elements equivocators) l Hl; input := iom; destination := composite_state_sub_projection IM (elements equivocators) sf; output := oom |}])
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∈ elements equivocators

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s) (composite_state_sub_projection IM (elements equivocators) sf) [{| l := composite_label_sub_projection IM (elements equivocators) l Hl; input := iom; destination := composite_state_sub_projection IM (elements equivocators) sf; output := oom |}]
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∈ elements equivocators

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) l Hl) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: valid_state_prop (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) s)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∈ elements equivocators

input_valid_transition (equivocators_composition_for_sent IM equivocators base_s) (composite_label_sub_projection IM (elements equivocators) l Hl) (composite_state_sub_projection IM (elements equivocators) s, iom) (composite_state_sub_projection IM (elements equivocators) sf, oom)
by apply fixed_input_valid_transition_sub_projection_helper.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∉ elements equivocators

finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) sf) (finite_trace_sub_projection IM (elements equivocators) tr ++ [])
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
si, s: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed si s tr
sf: state Fixed
iom, oom: option message
l: label Fixed
Ht: input_valid_transition Fixed l (s, iom) (sf, oom)
base_s: state PreFree
Hfuture: in_futures PreFree sf base_s
Hpre_t: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, oom)
Hfuture_s: in_futures PreFree s base_s
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators base_s) (composite_state_sub_projection IM (elements equivocators) si) (composite_state_sub_projection IM (elements equivocators) s) (finite_trace_sub_projection IM (elements equivocators) tr)
Htr_obs: m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators base_s m
Hl: projT1 l ∉ elements equivocators

composite_state_sub_projection IM (elements equivocators) s = composite_state_sub_projection IM (elements equivocators) sf
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: state Fixed
i: index
li: label (IM i)
si': state (IM i)
Hl: projT1 (existT i li) ∉ elements equivocators

composite_state_sub_projection IM (elements equivocators) s = composite_state_sub_projection IM (elements equivocators) (state_update IM s i si')
message, index, Ci: Type
H5: Elements index Ci
EqDecision1: EqDecision index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: state Fixed
i: index
li: label (IM i)
si': state (IM i)
Hl: projT1 (existT i li) ∉ elements equivocators
j: index
Hj: sub_index_prop (elements equivocators) j

s (`(dexist j Hj)) = state_update IM s i si' (`(dexist j Hj))
by destruct (decide (i = j)); subst; state_update_simpl. Qed.
Main result of this section: when restricting a Fixed valid trace to only the transitions belonging to the equivocators, the obtained trace is valid for the composition of equivocators preloaded with messages sent by the non-equivocators in the original trace.
This is a simple corollary of Lemma fixed_finite_valid_trace_sub_projection_helper proved above.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr

finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr

finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM f m → strong_fixed_equivocation IM equivocators f m)

finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
in_futures PreFree f f
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM f m → strong_fixed_equivocation IM equivocators f m)

finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM f m → strong_fixed_equivocation IM equivocators f m)

initial_state_prop (composite_state_sub_projection IM (elements equivocators) is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: initial_state_prop is
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM f m → strong_fixed_equivocation IM equivocators f m)

initial_state_prop (composite_state_sub_projection IM (elements equivocators) is)
by specialize (composite_initial_state_sub_projection IM (elements equivocators) is Htr).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr

in_futures PreFree f f
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr

valid_state_prop PreFree f
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed f

valid_state_prop PreFree f
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
is, f: state Fixed
tr: list transition_item
Htr: valid_state_prop Fixed f

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) (preloaded_vlsm_machine Free (λ _ : message, True))
by apply constrained_preloaded_incl. Qed.
Any message directly observed in a fixed valid state has either been sent by the non-equivocating components, or it can be generated by the equivocating components using only the messages sent by the non-equivocating components.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
Hf: valid_state_prop Fixed f
m: message
Hobs: composite_has_been_directly_observed IM f m

strong_fixed_equivocation IM equivocators f 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
Hf: valid_state_prop Fixed f
m: message
Hobs: composite_has_been_directly_observed IM f m

strong_fixed_equivocation IM equivocators f 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
Hf: valid_state_prop Fixed f
m: message
Hobs: composite_has_been_directly_observed IM f m
Hfuture: valid_state_prop {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} f

strong_fixed_equivocation IM equivocators f 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
Hf: valid_state_prop Fixed f
m: message
Hobs: composite_has_been_directly_observed IM f m
Hfuture: in_futures {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} f f

strong_fixed_equivocation IM equivocators f 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f, is: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
m: message
Hobs: composite_has_been_directly_observed IM f m
Hfuture: in_futures {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} f f

strong_fixed_equivocation IM equivocators f 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f, is: state Fixed
tr: list transition_item
Htr: finite_valid_trace_init_to Fixed is f tr
m: message
Hobs: composite_has_been_directly_observed IM f m
Hfuture: in_futures {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} f f
Htr_pr: finite_valid_trace_from_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) tr) ∧ ( m : message, composite_has_been_directly_observed IM f m → strong_fixed_equivocation IM equivocators f m)

strong_fixed_equivocation IM equivocators f m
by apply Htr_pr. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
Hsf: in_futures Fixed s f

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
Hsf: in_futures Fixed s f

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
Htr: finite_valid_trace_from_to Fixed s f tr

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_init_to Fixed is f (trs ++ tr)
Hs: finite_trace_last is trs = s

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_init_to Fixed is f (trs ++ tr)
Hs: finite_trace_last is trs = s
Hpr_tr: finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) (trs ++ tr))

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_from Fixed is trs
Hs: finite_trace_last is trs = s
Hpr_tr: finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) (trs ++ tr))

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_from Fixed is trs
Hs: finite_trace_last is trs = s
Hpr_tr: finite_valid_trace_init_to (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) is) (composite_state_sub_projection IM (elements equivocators) f) (finite_trace_sub_projection IM (elements equivocators) trs ++ finite_trace_sub_projection IM (elements equivocators) tr)

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
s, f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_from Fixed is trs
Hs: finite_trace_last is trs = s
Hpr_tr: valid_state_prop (equivocators_composition_for_sent IM equivocators f) (finite_trace_last (composite_state_sub_projection IM (elements equivocators) is) (finite_trace_sub_projection IM (elements equivocators) trs))

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_from Fixed is trs
Hpr_tr: valid_state_prop (equivocators_composition_for_sent IM equivocators f) (finite_trace_last (composite_state_sub_projection IM (elements equivocators) is) (finite_trace_sub_projection IM (elements equivocators) trs))

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) (finite_trace_last is trs))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
f: state Fixed
tr: list transition_item
is: state Fixed
trs: list transition_item
Htr: finite_valid_trace_from Fixed is trs
Hpr_tr: valid_state_prop (equivocators_composition_for_sent IM equivocators f) (finite_trace_last (composite_state_sub_projection IM (elements equivocators) is) (finite_trace_sub_projection IM (elements equivocators) trs))

valid_state_prop (equivocators_composition_for_sent IM equivocators f) (composite_state_sub_projection IM (elements equivocators) (finite_trace_last is trs))
by rewrite <- (finite_trace_sub_projection_last_state IM _ _ _ _ Htr). Qed.
The input of a Fixed input valid transition has the strong_fixed_equivocation property.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
m: message
Ht: input_valid Fixed l (s, Some m)

strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
m: message
Ht: input_valid Fixed l (s, Some m)

strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
m: message
Ht: input_valid Fixed l (s, Some m)

m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators s m
by apply fixed_directly_observed_has_strong_fixed_equivocation, Ht. Qed.
The output of a Fixed input valid transition has the strong_fixed_equivocation property for its destination.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)

strong_fixed_equivocation IM equivocators sf om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)

strong_fixed_equivocation IM equivocators sf om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

strong_fixed_equivocation IM equivocators sf om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators sf 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
valid_state_prop (equivocators_composition_for_sent IM equivocators sf) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
in_futures PreFree sf sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
input_valid_transition Fixed l (s, iom) (sf, Some om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

m : message, composite_has_been_directly_observed IM s m → strong_fixed_equivocation IM equivocators sf 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m

strong_fixed_equivocation IM equivocators sf 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m

in_futures PreFree s sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m
strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m

in_futures PreFree s sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m
Ht: input_valid_transition {| vlsm_type := free_composite_vlsm IM; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm IM) |} l (s, iom) (sf, Some om)

in_futures PreFree s sf
by eapply (input_valid_transition_in_futures PreFree).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s
m: message
Hobs: composite_has_been_directly_observed IM s m

strong_fixed_equivocation IM equivocators s m
by apply fixed_directly_observed_has_strong_fixed_equivocation.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

valid_state_prop (equivocators_composition_for_sent IM equivocators sf) (composite_state_sub_projection IM (elements equivocators) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: in_futures Fixed s sf
Hs: valid_state_prop Fixed s

valid_state_prop (equivocators_composition_for_sent IM equivocators sf) (composite_state_sub_projection IM (elements equivocators) s)
by apply fixed_valid_state_sub_projection.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

in_futures PreFree sf sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

valid_state_prop PreFree sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: valid_state_prop Fixed sf
Hs: valid_state_prop Fixed s

valid_state_prop PreFree sf
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: valid_state_prop Fixed sf
Hs: valid_state_prop Fixed s

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) (preloaded_vlsm_machine Free (λ _ : message, True))
by apply constrained_preloaded_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
PreFree:= preloaded_with_all_messages_vlsm Free: VLSM message
l: label Fixed
s: state Fixed
iom: option message
sf: state Fixed
om: message
Ht: input_valid_transition Fixed l ( s, iom) (sf, Some om)
Hs: valid_state_prop Fixed s

input_valid_transition Fixed l (s, iom) (sf, Some om)
done. Qed. End sec_fixed_equivocator_sub_projection.
strong_fixed_equivocation_constraint is not actually stronger.
In this section we show that a composition using the fixed_equivocation_constraint and the strong_fixed_equivocation are trace-equivalent.
The importance of this result is that we can reduce the complexity of proofs involving fixed equivocation by using the strong_fixed_equivocation constraint in the hypotheses of a lemma and the "weaker" fixed_equivocation_constraint in the conclusion.
Section sec_Fixed_eq_StrongFixed.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i, HasBeenSentCapability (IM i)}
  `{forall i, HasBeenReceivedCapability (IM i)}
  (equivocators : Ci)
  (Fixed := fixed_equivocation_vlsm_composition IM equivocators)
  (StrongFixed := strong_fixed_equivocation_vlsm_composition IM equivocators)
  (Free := free_composite_vlsm IM)
  .
Given a Fixed valid state, the composition of the equivocators preloaded with all the directly observed messages in the state is not stronger than that preloaded with only the messages sent by non-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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_incl (equivocators_composition_for_directly_observed IM equivocators base_s) (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_incl (equivocators_composition_for_directly_observed IM equivocators base_s) (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

strong_incl_initial_state_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
weak_incl_initial_message_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
weak_incl_valid_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
weak_incl_transition_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

strong_incl_initial_state_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s))
by intros s Hincl.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

weak_incl_initial_message_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
l: label {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |}
s: state {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |}
m: message
Hv: input_valid {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s) |} (id s)
Hobs: composite_has_been_directly_observed IM base_s m

valid_message_prop {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
l: label {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |}
s: state {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |}
m: message
Hv: input_valid {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s) |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := free_equivocating_vlsm_composition IM equivocators; vlsm_machine := preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s) |} (id s)
Hobs: composite_has_been_directly_observed IM base_s m

strong_fixed_equivocation IM equivocators base_s m
by apply fixed_directly_observed_has_strong_fixed_equivocation.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

weak_incl_valid_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s))
by intros l s om (_ & _ & 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

weak_incl_transition_preservation (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (composite_has_been_directly_observed IM base_s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators base_s))
by destruct 1. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_eq (equivocators_composition_for_directly_observed IM equivocators base_s) (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_eq (equivocators_composition_for_directly_observed IM equivocators base_s) (equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_incl {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_directly_observed IM equivocators base_s |} {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_sent IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s
VLSM_incl {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_sent IM equivocators base_s |} {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_directly_observed IM equivocators base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_incl {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_directly_observed IM equivocators base_s |} {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_sent IM equivocators base_s |}
by apply Equivocators_Fixed_Strong_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
base_s: state Fixed
Hbase_s: valid_state_prop Fixed base_s

VLSM_incl {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_sent IM equivocators base_s |} {| vlsm_type := equivocators_composition_for_directly_observed IM equivocators base_s; vlsm_machine := equivocators_composition_for_directly_observed IM equivocators base_s |}
by apply Equivocators_Strong_Fixed_incl. Qed.
The subsumption between fixed_equivocation_constraint and strong_fixed_equivocation_constraint holds under input_valid assumptions.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

input_valid_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators) (strong_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

input_valid_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators) (strong_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
l: label (free_composite_vlsm IM)
s: state (free_composite_vlsm IM)
om: option message
Hv: input_valid (constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) l ( s, om)

strong_fixed_equivocation_constraint IM equivocators l (s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
l: label (free_composite_vlsm IM)
s: state (free_composite_vlsm IM)
m: message
Hv: input_valid (constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) l ( s, Some m)

strong_fixed_equivocation_constraint IM equivocators l (s, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
l: label (free_composite_vlsm IM)
s: state (free_composite_vlsm IM)
m: message
Hv: input_valid (constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) l ( s, Some m)
Hs: valid_state_prop (constrained_vlsm (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators)) s

strong_fixed_equivocation_constraint IM equivocators l (s, Some m)
by eapply fixed_input_has_strong_fixed_equivocation. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_incl Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_incl Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

input_valid_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators) (strong_fixed_equivocation_constraint IM equivocators)
apply fixed_strong_equivocation_subsumption. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_eq Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_eq Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := Fixed; vlsm_machine := Fixed |} {| vlsm_type := Fixed; vlsm_machine := 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message
VLSM_incl {| vlsm_type := Fixed; vlsm_machine := StrongFixed |} {| vlsm_type := Fixed; vlsm_machine := Fixed |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := Fixed; vlsm_machine := Fixed |} {| vlsm_type := Fixed; vlsm_machine := StrongFixed |}
by apply 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
Free:= free_composite_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := Fixed; vlsm_machine := StrongFixed |} {| vlsm_type := Fixed; vlsm_machine := Fixed |}
by apply StrongFixed_incl_Fixed. Qed. End sec_Fixed_eq_StrongFixed.

Changing the behavior of equivocators within a trace

By noting that the satisfaction of the fixed_equivocation_constraint actually only depends on the messages sent by non-equivocating components, it makes it much easier to establish results related to changing the behavior of equivocating components.
In this section we essentially prove that given a Fixed valid state s, any valid trace over the composition of equivocators preloaded with the messages directly observed in s can be "lifted" to a Fixed valid trace in which the non-equivocators remain in their corresponding component-state given by s (lemma EquivPreloadedBase_Fixed_weak_embedding).
Section sec_fixed_equivocator_lifting.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i, HasBeenSentCapability (IM i)}
  `{forall i, HasBeenReceivedCapability (IM i)}
  (equivocators : Ci)
  (Free := free_composite_vlsm IM)
  (Fixed := fixed_equivocation_vlsm_composition IM equivocators)
  (StrongFixed := strong_fixed_equivocation_vlsm_composition IM equivocators)
  .
Replacing the state corresponding to the equivocators does not affect the sent_by_non_equivocating property.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

sent_by_non_equivocating IM equivocators s m ↔ sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

sent_by_non_equivocating IM equivocators s m ↔ sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m
by split; intros [i [Hi Hsent]]; exists i; split; [done | | done |] ; revert Hsent; rewrite lift_sub_state_to_neq. Qed.
The property above induces trace-equality for the corresponding equivocators_composition_for_sent compositions.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))

VLSM_incl (equivocators_composition_for_sent IM equivocators s) (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))

VLSM_incl (equivocators_composition_for_sent IM equivocators s) (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))

m : message, sent_by_non_equivocating IM equivocators s m → sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m
by apply lift_sub_state_to_sent_by_non_equivocating_iff. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: composite_state IM
eqv_is: composite_state (sub_IM IM (elements equivocators))

VLSM_incl (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) (equivocators_composition_for_sent IM equivocators 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: composite_state IM
eqv_is: composite_state (sub_IM IM (elements equivocators))

VLSM_incl (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) (equivocators_composition_for_sent IM equivocators 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: composite_state IM
eqv_is: composite_state (sub_IM IM (elements equivocators))

m : message, sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m → sent_by_non_equivocating IM equivocators s m
by apply lift_sub_state_to_sent_by_non_equivocating_iff. Qed.
Replacing the state corresponding to the equivocators does not affect the strong_fixed_equivocation property.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

strong_fixed_equivocation IM equivocators s m ↔ strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

strong_fixed_equivocation IM equivocators s m ↔ strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

sent_by_non_equivocating IM equivocators s m → sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message
can_emit (equivocators_composition_for_sent IM equivocators s) m → can_emit (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message
sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m → sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message
can_emit (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) m → can_emit (equivocators_composition_for_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

sent_by_non_equivocating IM equivocators s m → sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m
by apply lift_sub_state_to_sent_by_non_equivocating_iff.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

can_emit (equivocators_composition_for_sent IM equivocators s) m → can_emit (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

VLSM_incl_part (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators s)) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)))
by apply restrict_observed_to_non_equivocating_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is) m → sent_by_non_equivocating IM equivocators s m
by apply lift_sub_state_to_sent_by_non_equivocating_iff.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

can_emit (equivocators_composition_for_sent IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) m → can_emit (equivocators_composition_for_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
s: x : index, state (IM x)
eqv_is: composite_state (sub_IM IM (elements equivocators))
m: message

VLSM_incl_part (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is))) (preloaded_vlsm_machine (free_equivocating_vlsm_composition IM equivocators) (sent_by_non_equivocating IM equivocators s))
by apply restrict_observed_to_non_equivocating_incl_rev. Qed.
The operation of replacing the state corresponding to the equivocators with a given initial state and removing all transitions belonging to non-equivocators in a trace induces a self-VLSM_projection on the fixed equivocation composition VLSM.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

VLSM_projection StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

VLSM_projection StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_valid_preservation StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
strong_projection_transition_preservation_Some StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
strong_projection_transition_consistency_None StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
strong_projection_initial_state_preservation StrongFixed StrongFixed (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
strong_projection_valid_message_preservation StrongFixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_valid_preservation StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed

remove_equivocating_label_project IM (elements equivocators) (existT i liX) = Some lY → (s : state StrongFixed) (om : option message), valid (existT i liX) (s, om) → valid lY (remove_equivocating_state_project IM (elements equivocators) eqv_is s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed

(if decide (i ∈ elements equivocators) then None else Some (existT i liX)) = Some lY → (s : composite_state IM) (om : option message), valid liX (s i, om) ∧ from_option (strong_fixed_equivocation IM equivocators s) True om → (let (i, li) := lY in valid li (lift_sub_state_to IM (elements equivocators) s eqv_is i, om)) ∧ from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators

(s : composite_state IM) (om : option message), valid liX (s i, om) ∧ from_option (strong_fixed_equivocation IM equivocators s) True om → valid liX (lift_sub_state_to IM (elements equivocators) s eqv_is i, om) ∧ from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
Hv: valid liX (s i, om)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True om

valid liX (lift_sub_state_to IM (elements equivocators) s eqv_is i, om) ∧ from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
Hv: valid liX (s i, om)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True om

valid liX (lift_sub_state_to IM (elements equivocators) s eqv_is i, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
Hv: valid liX (s i, om)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True om
from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
Hv: valid liX (s i, om)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True om

valid liX (lift_sub_state_to IM (elements equivocators) s eqv_is i, om)
by cbn; rewrite lift_sub_state_to_neq.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
Hv: valid liX (s i, om)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True om

from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True om
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
m: message
Hv: valid liX (s i, Some m)
Hc: from_option (strong_fixed_equivocation IM equivocators s) True (Some m)

from_option (strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) s eqv_is)) True (Some m)
by apply lift_sub_state_to_strong_fixed_equivocation.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_transition_preservation_Some StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed

remove_equivocating_label_project IM (elements equivocators) (existT i liX) = Some lY → (s : state StrongFixed) (om : option message) (s' : state StrongFixed) (om' : option message), transition (existT i liX) (s, om) = (s', om') → transition lY (remove_equivocating_state_project IM (elements equivocators) eqv_is s, om) = (remove_equivocating_state_project IM (elements equivocators) eqv_is s', om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed

(if decide (i ∈ elements equivocators) then None else Some (existT i liX)) = Some lY → (s : composite_state IM) (om : option message) (s' : composite_state IM) (om' : option message), (let (si', om'0) := transition liX (s i, om) in (state_update IM s i si', om'0)) = (s', om') → (let (i, li) := lY in let (si', om'0) := transition li (lift_sub_state_to IM (elements equivocators) s eqv_is i, om) in (state_update IM (lift_sub_state_to IM (elements equivocators) s eqv_is) i si', om'0)) = (lift_sub_state_to IM (elements equivocators) s' eqv_is, om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators

(s : composite_state IM) (om : option message) (s' : composite_state IM) (om' : option message), (let (si', om'0) := transition liX (s i, om) in (state_update IM s i si', om'0)) = (s', om') → (let (si', om'0) := transition liX (lift_sub_state_to IM (elements equivocators) s eqv_is i, om) in (state_update IM (lift_sub_state_to IM (elements equivocators) s eqv_is) i si', om'0)) = (lift_sub_state_to IM (elements equivocators) s' eqv_is, om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message

(state_update IM (lift_sub_state_to IM (elements equivocators) s eqv_is) i si', om') = (lift_sub_state_to IM (elements equivocators) (state_update IM s i si') eqv_is, om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
lY: label StrongFixed
Hi: i ∉ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message
j: index

state_update IM (lift_sub_state_to IM (elements equivocators) s eqv_is) i si' j = lift_sub_state_to IM (elements equivocators) (state_update IM s i si') eqv_is j
by destruct (decide (i = j)); subst; state_update_simpl.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_transition_consistency_None StrongFixed StrongFixed (remove_equivocating_label_project IM (elements equivocators)) (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)

remove_equivocating_label_project IM (elements equivocators) (existT i liX) = None → (s : state StrongFixed) (om : option message) (s' : state StrongFixed) (om' : option message), transition (existT i liX) (s, om) = (s', om') → remove_equivocating_state_project IM (elements equivocators) eqv_is s' = remove_equivocating_state_project IM (elements equivocators) eqv_is 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)

(if decide (i ∈ elements equivocators) then None else Some (existT i liX)) = None → (s : composite_state IM) (om : option message) (s' : composite_state IM) (om' : option message), (let (si', om'0) := transition liX (s i, om) in (state_update IM s i si', om'0)) = (s', om') → lift_sub_state_to IM (elements equivocators) s' eqv_is = lift_sub_state_to IM (elements equivocators) s eqv_is
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
Hi: i ∈ elements equivocators

None = None → (s : composite_state IM) (om : option message) (s' : composite_state IM) (om' : option message), (let (si', om'0) := transition liX (s i, om) in (state_update IM s i si', om'0)) = (s', om') → lift_sub_state_to IM (elements equivocators) s' eqv_is = lift_sub_state_to IM (elements equivocators) s eqv_is
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
Hi: i ∈ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message
Hti: transition liX (s i, om) = (si', _om')

lift_sub_state_to IM (elements equivocators) (state_update IM s i si') eqv_is = lift_sub_state_to IM (elements equivocators) s eqv_is
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
Hi: i ∈ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message
Hti: transition liX (s i, om) = (si', _om')
j: index

lift_sub_state_to IM (elements equivocators) (state_update IM s i si') eqv_is j = lift_sub_state_to IM (elements equivocators) s eqv_is j
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
Hi: i ∈ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message
Hti: transition liX (s i, om) = (si', _om')
j: index

match decide (sub_index_prop (elements equivocators) j) with | left e => eqv_is (dexist j e) | right _ => state_update IM s i si' j end = match decide (sub_index_prop (elements equivocators) j) with | left e => eqv_is (dexist j e) | right _ => s j end
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
i: index
liX: label (IM i)
Hi: i ∈ elements equivocators
s: composite_state IM
om: option message
s': composite_state IM
om': option message
si': state (IM i)
_om': option message
Hti: transition liX (s i, om) = (si', _om')
j: index
H10: ¬ sub_index_prop (elements equivocators) j

state_update IM s i si' j = s j
by destruct (decide (i = j)); subst; state_update_simpl.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_initial_state_preservation StrongFixed StrongFixed (remove_equivocating_state_project IM (elements equivocators) eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index

initial_state_prop (remove_equivocating_state_project IM (elements equivocators) eqv_is s i)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index

initial_state_prop match decide (sub_index_prop (elements equivocators) i) with | left e => eqv_is (dexist i e) | right _ => s i end
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index
Hi: sub_index_prop (elements equivocators) i

initial_state_prop (eqv_is (dexist i Hi))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index
Hi: ¬ sub_index_prop (elements equivocators) i
initial_state_prop (s i)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index
Hi: sub_index_prop (elements equivocators) i

initial_state_prop (eqv_is (dexist i Hi))
by apply (Heqv_is (dexist i Hi)).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is
s: state StrongFixed
Hs: initial_state_prop s
i: index
Hi: ¬ sub_index_prop (elements equivocators) i

initial_state_prop (s i)
by apply Hs.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
eqv_is: composite_state (sub_IM IM (elements equivocators))
Heqv_is: composite_initial_state_prop (sub_IM IM (elements equivocators)) eqv_is

strong_projection_valid_message_preservation StrongFixed StrongFixed
by intros m HFixed. Qed. Context (base_s : composite_state IM) (Hbase_s : valid_state_prop Fixed base_s) (EquivPreloadedBase := equivocators_composition_for_sent IM equivocators base_s) .
As a corollary of the above projection result, the state obtained by replacing the equivocator component of a Fixed valid state with initial states is still a Fixed valid state.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message

weak_projection_initial_state_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message

weak_projection_initial_state_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
eqv_is: state EquivPreloadedBase
Heqv_is: initial_state_prop eqv_is

valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
eqv_is: state EquivPreloadedBase
Heqv_is: initial_state_prop eqv_is

valid_state_prop {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM equivocators; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM equivocators |} (lift_sub_state_to IM (elements equivocators) base_s eqv_is)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
eqv_is: state EquivPreloadedBase
Heqv_is: initial_state_prop eqv_is

valid_state_prop StrongFixed base_s
by apply (VLSM_incl_valid_state (Fixed_incl_StrongFixed IM equivocators)). Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))

m : message, sent_by_non_equivocating IM equivocators base_s m → composite_has_been_directly_observed IM (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))

m : message, sent_by_non_equivocating IM equivocators base_s m → composite_has_been_directly_observed IM (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))
m: message
Hsent: sent_by_non_equivocating IM equivocators base_s m

composite_has_been_directly_observed IM (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))
m: message
Hsent: sent_by_non_equivocating IM equivocators (lift_sub_state_to IM (elements equivocators) base_s s) m

composite_has_been_directly_observed IM (lift_sub_state_to IM (elements equivocators) base_s s) m
by eapply sent_by_non_equivocating_are_directly_observed. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))

m : message, strong_fixed_equivocation IM equivocators base_s m → fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))

m : message, strong_fixed_equivocation IM equivocators base_s m → fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))
m: message
H10: strong_fixed_equivocation IM equivocators base_s m

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
s: composite_state (sub_IM IM (elements equivocators))
m: message
H10: strong_fixed_equivocation IM equivocators base_s m

strong_fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s s) m
by apply lift_sub_state_to_strong_fixed_equivocation. Qed.

Main result of the section

Given a valid state s for the Fixed composition (composition where only the equivocators are allowed to message-equivocate), we can "lift" any trace of the free composition of just the equivocators preloaded with the messages observed in s to a trace over the Fixed composition by simply setting the non-equivocating state components to those of s.
This result is important for establishing the connection between limited equivocation and fixed equivocation (Lemma strong_witness_has_fixed_equivocation).
We prove this as a VLSM_weak_embedding between the free composition of equivocators preloaded with the messages observed in s and the Fixed composition of all the components. Note that this is a strengthening of Lemma PreSubFree_PreFree_weak_embedding.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

VLSM_weak_embedding EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

VLSM_weak_embedding EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

weak_embedding_valid_preservation EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
weak_embedding_transition_preservation EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
weak_projection_initial_state_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
weak_embedding_initial_message_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

weak_embedding_valid_preservation EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
om: option message
Hv: input_valid EquivPreloadedBase l (s, om)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

valid (lift_sub_label IM (elements equivocators) l) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
om: option message
Hv: input_valid EquivPreloadedBase l (s, om)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

valid (lift_sub_label IM (elements equivocators) l) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
om: option message
Hv: input_valid EquivPreloadedBase l (s, om)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om
fixed_equivocation_constraint IM equivocators (lift_sub_label IM (elements equivocators) l) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
om: option message
Hv: input_valid EquivPreloadedBase l (s, om)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

valid (lift_sub_label IM (elements equivocators) l) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
i: sub_index (elements equivocators)
li: label (sub_IM IM (elements equivocators) i)
s: state EquivPreloadedBase
om: option message
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

valid (existT i li) (s, om) → valid (lift_sub_label IM (elements equivocators) (existT i li)) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

valid li (s (dexist j Hj), om) → valid li (lift_sub_state_to IM (elements equivocators) base_s s j, om)
by rewrite lift_sub_state_to_eq with (Hi := Hj).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
om: option message
Hv: input_valid EquivPreloadedBase l (s, om)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed om

fixed_equivocation_constraint IM equivocators (lift_sub_label IM (elements equivocators) l) (lift_sub_state_to IM (elements equivocators) base_s s, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hm: option_valid_message_prop EquivPreloadedBase (Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hm: initial_message_prop m ∨ can_emit EquivPreloadedBase m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hinit: initial_message_prop m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hobs: sent_by_non_equivocating IM equivocators base_s m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)
fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hemit: can_emit EquivPreloadedBase m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)
fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hinit: initial_message_prop m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
i: sub_index (elements equivocators)
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
im: message
j: index
Hj: sub_index_prop (elements equivocators) j
Him: initial_message_prop im
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some (`(im ↾ Him)))

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s s) im
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
im: message
j: index
Hj: sub_index_prop (elements equivocators) j
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)

¬ initial_message_prop im
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
im: message
j: index
Hj: sub_index_prop (elements equivocators) j
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)

j ∈ equivocators
by apply elem_of_elements, Hj.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hobs: sent_by_non_equivocating IM equivocators base_s m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s s) m
by apply strong_fixed_equivocation_lift_sub_state_to; left.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hemit: can_emit EquivPreloadedBase m
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
HomY: option_valid_message_prop Fixed (Some m)

fixed_equivocation IM equivocators (lift_sub_state_to IM (elements equivocators) base_s s) m
by apply strong_fixed_equivocation_lift_sub_state_to; right.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

weak_embedding_transition_preservation EquivPreloadedBase Fixed (lift_sub_label IM (elements equivocators)) (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
sub_i: sub_index (elements equivocators)
li: label (sub_IM IM (elements equivocators) sub_i)
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message

input_valid_transition EquivPreloadedBase (existT sub_i li) (s, om) (s', om') → transition (lift_sub_label IM (elements equivocators) (existT sub_i li)) (lift_sub_state_to IM (elements equivocators) base_s s, om) = (lift_sub_state_to IM (elements equivocators) base_s s', om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message

(state_update IM (lift_sub_state_to IM (elements equivocators) base_s s) j si', om') = (lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si'), om')
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index

state_update IM (lift_sub_state_to IM (elements equivocators) base_s s) j si' i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message

si' = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') j
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message

si' = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') j
by rewrite lift_sub_state_to_eq with (Hi := Hj), !state_update_eq.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j

lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
e: i ∈ elements equivocators

lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
n0: i ∉ elements equivocators
lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
e: i ∈ elements equivocators

lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
e: i ∈ elements equivocators

dexist i e ≠ dexist j Hj
by intros Hcontra%dsig_eq.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
j: index
Hj: sub_index_prop (elements equivocators) j
li: label (sub_IM IM (elements equivocators) (dexist j Hj))
s: state EquivPreloadedBase
om: option message
s': state EquivPreloadedBase
om': option message
si': state (IM j)
_om': option message
i: index
n: i ≠ j
n0: i ∉ elements equivocators

lift_sub_state_to IM (elements equivocators) base_s s i = lift_sub_state_to IM (elements equivocators) base_s (state_update (λ ei : sub_index (elements equivocators), IM (`ei)) s (dexist j Hj) si') i
by state_update_simpl.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

weak_projection_initial_state_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_s)
by intros s Hweak_proj; apply fixed_equivocator_lifting_initial_state.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m

weak_embedding_initial_message_preservation EquivPreloadedBase Fixed (lift_sub_state_to IM (elements equivocators) base_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
i: index
Hi: bool_decide (sub_index_prop (elements equivocators) i)
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = m

valid_message_prop Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
Hm: sent_by_non_equivocating IM equivocators base_s m
valid_message_prop Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
i: index
Hi: bool_decide (sub_index_prop (elements equivocators) i)
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = m

valid_message_prop Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
i: index
Hi: bool_decide (sub_index_prop (elements equivocators) i)
im: message
Him: initial_message_prop im
Heqm: `(im ↾ Him) = m

initial_message_prop m
by exists i, (exist _ im Him).
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
HsY: valid_state_prop Fixed (lift_sub_state_to IM (elements equivocators) base_s s)
Hm: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
Hm: sent_by_non_equivocating IM equivocators base_s m

valid_message_prop Fixed 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
base_s: composite_state IM
Hbase_s: valid_state_prop Fixed base_s
EquivPreloadedBase:= equivocators_composition_for_sent IM equivocators base_s: VLSM message
no_initial_messages_for_equivocators: (i : index) (m : message), i ∈ equivocators → ¬ initial_message_prop m
l: label EquivPreloadedBase
s: state EquivPreloadedBase
m: message
Hv: input_valid EquivPreloadedBase l (s, Some m)
Hm: sent_by_non_equivocating IM equivocators base_s m

composite_has_been_directly_observed IM base_s m
by eapply sent_by_non_equivocating_are_directly_observed. Qed. End sec_fixed_equivocator_lifting.

Fixed equivocation over an empty set

If the set of components allowed to equivocate is empty, intuitively, it follows that no message equivocation is allowed, since that would mean that at least one component would equivocate.
Section sec_fixed_equivocation_no_equivocators.

Context
  {message : Type}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  `{forall i : index, HasBeenReceivedCapability (IM i)}
  .

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)
H9: i : index, HasBeenReceivedCapability (IM i)

(s : x : index, state (IM x)) (m : message), strong_fixed_equivocation IM ∅ s m ↔ composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)

(s : x : index, state (IM x)) (m : message), strong_fixed_equivocation IM ∅ s m ↔ composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message

strong_fixed_equivocation IM ∅ s m ↔ composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message

strong_fixed_equivocation IM ∅ s m → composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
composite_has_been_sent IM s m → strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message

strong_fixed_equivocation IM ∅ s m → composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating IM ∅ s m

composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent IM ∅ s) m
composite_has_been_sent 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hsent: sent_by_non_equivocating IM ∅ s m

composite_has_been_sent IM s m
by apply sent_by_non_equivocating_are_sent in Hsent.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hemit: can_emit (equivocators_composition_for_sent IM ∅ s) m

composite_has_been_sent IM s m
by apply sub_no_indices_no_can_emit in Hemit; [| apply elements_empty].
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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message

composite_has_been_sent IM s m → strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hsent: composite_has_been_sent IM s m

strong_fixed_equivocation 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
Hsent: composite_has_been_sent IM s m

sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
i: index
Hsent: has_been_sent (IM i) (s i) m

sent_by_non_equivocating 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)
H9: i : index, HasBeenReceivedCapability (IM i)
s: x : index, state (IM x)
m: message
i: index
Hsent: has_been_sent (IM i) (s i) m

i ∉ elements ∅
by rewrite elem_of_elements; apply not_elem_of_empty. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)

(l : composite_label IM) (som : composite_state IM * option message), strong_fixed_equivocation_constraint IM ∅ l som ↔ composite_no_equivocations IM l som
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)
H9: i : index, HasBeenReceivedCapability (IM i)

(l : composite_label IM) (som : composite_state IM * option message), strong_fixed_equivocation_constraint IM ∅ l som ↔ composite_no_equivocations IM l som
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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: composite_label IM
som: (composite_state IM * option message)%type

strong_fixed_equivocation_constraint IM ∅ l som ↔ composite_no_equivocations IM l som
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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: composite_label IM
s: composite_state IM
m: message

strong_fixed_equivocation_constraint IM ∅ l (s, Some m) ↔ composite_no_equivocations IM l (s, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: composite_label IM
s: composite_state IM
m: message

strong_fixed_equivocation IM ∅ s m ↔ composite_no_equivocations IM l (s, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: composite_label IM
s: composite_state IM
m: message

strong_fixed_equivocation IM ∅ s m ↔ composite_has_been_sent IM s m → strong_fixed_equivocation IM ∅ s m ↔ composite_no_equivocations IM l (s, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: composite_label IM
s: composite_state IM
m: message

strong_fixed_equivocation IM ∅ s m ↔ composite_has_been_sent IM s m → strong_fixed_equivocation IM ∅ s m ↔ from_option (λ im : message, composite_has_been_sent IM (s, Some m).1 im ∨ False) True (s, Some m).2
by cbn; itauto. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq (strong_fixed_equivocation_vlsm_composition IM ∅) (composite_vlsm IM (composite_no_equivocations IM))
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq (strong_fixed_equivocation_vlsm_composition IM ∅) (composite_vlsm IM (composite_no_equivocations IM))
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_incl {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM ∅ |} {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := composite_vlsm IM (composite_no_equivocations IM) |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)
VLSM_incl {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := composite_vlsm IM (composite_no_equivocations IM) |} {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM ∅ |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_incl {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM ∅ |} {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := composite_vlsm IM (composite_no_equivocations IM) |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)

input_valid_constraint_subsumption (free_composite_vlsm IM) (strong_fixed_equivocation_constraint IM ∅) (composite_no_equivocations IM)
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)
H9: i : index, HasBeenReceivedCapability (IM i)

preloaded_constraint_subsumption (free_composite_vlsm IM) (strong_fixed_equivocation_constraint IM ∅) (composite_no_equivocations IM)
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)
H9: i : index, HasBeenReceivedCapability (IM i)

strong_constraint_subsumption (free_composite_vlsm IM) (strong_fixed_equivocation_constraint IM ∅) (composite_no_equivocations IM)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: label (free_composite_vlsm IM)
som: (state (free_composite_vlsm IM) * option message)%type

strong_fixed_equivocation_constraint IM ∅ l som → composite_no_equivocations IM l som
by rewrite strong_fixed_equivocation_constraint_no_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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_incl {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := composite_vlsm IM (composite_no_equivocations IM) |} {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM ∅; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM ∅ |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)

input_valid_constraint_subsumption (free_composite_vlsm IM) (composite_no_equivocations IM) (strong_fixed_equivocation_constraint IM ∅)
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)
H9: i : index, HasBeenReceivedCapability (IM i)

preloaded_constraint_subsumption (free_composite_vlsm IM) (composite_no_equivocations IM) (strong_fixed_equivocation_constraint IM ∅)
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)
H9: i : index, HasBeenReceivedCapability (IM i)

strong_constraint_subsumption (free_composite_vlsm IM) (composite_no_equivocations IM) (strong_fixed_equivocation_constraint IM ∅)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
l: label (free_composite_vlsm IM)
som: (state (free_composite_vlsm IM) * option message)%type

composite_no_equivocations IM l som → strong_fixed_equivocation_constraint IM ∅ l som
by rewrite strong_fixed_equivocation_constraint_no_equivocators. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq (fixed_equivocation_vlsm_composition IM ∅) (composite_vlsm IM (composite_no_equivocations IM))
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq (fixed_equivocation_vlsm_composition IM ∅) (composite_vlsm IM (composite_no_equivocations IM))
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq {| vlsm_type := free_composite_vlsm IM; vlsm_machine := constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM ∅) |} {| vlsm_type := free_composite_vlsm IM; 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)
H9: i : index, HasBeenReceivedCapability (IM i)
VLSM_eq {| vlsm_type := free_composite_vlsm IM; vlsm_machine := ?MY |} {| vlsm_type := free_composite_vlsm IM; vlsm_machine := constrained_vlsm_machine (free_composite_vlsm IM) (composite_no_equivocations IM) |}
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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq {| vlsm_type := free_composite_vlsm IM; vlsm_machine := constrained_vlsm_machine (free_composite_vlsm IM) (fixed_equivocation_constraint IM ∅) |} {| vlsm_type := free_composite_vlsm IM; vlsm_machine := ?MY |}
by apply Fixed_eq_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)
H9: i : index, HasBeenReceivedCapability (IM i)

VLSM_eq {| vlsm_type := free_composite_vlsm IM; vlsm_machine := constrained_vlsm_machine (free_composite_vlsm IM) (strong_fixed_equivocation_constraint IM ∅) |} {| vlsm_type := free_composite_vlsm IM; vlsm_machine := constrained_vlsm_machine (free_composite_vlsm IM) (composite_no_equivocations IM) |}
by apply strong_fixed_equivocation_vlsm_composition_no_equivocators. Qed. End sec_fixed_equivocation_no_equivocators. Section sec_fixed_non_equivocator_lifting. Context {message : Type} `{FinSet index Ci} `{finite.Finite index} (IM : index -> VLSM message) `{forall i, HasBeenSentCapability (IM i)} `{forall i, HasBeenReceivedCapability (IM i)} (equivocators : Ci) (non_equivocators := list_to_set (enum index) ∖ equivocators) (Free := free_composite_vlsm IM) (Fixed := fixed_equivocation_vlsm_composition IM equivocators) (FixedNonEquivocating := pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators)) (StrongFixed := strong_fixed_equivocation_vlsm_composition IM equivocators) (StrongFixedNonEquivocating := pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators)) .
All valid traces in the induced projection of the composition under the strong fixed-equivocation constraint to the non-equivocating components can be lifted to valid traces of the constrained composition.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

VLSM_embedding StrongFixedNonEquivocating StrongFixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

VLSM_embedding StrongFixedNonEquivocating StrongFixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

s1 s2 : composite_state IM, composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2 → (l : composite_label IM) (om : option message), strong_fixed_equivocation_constraint IM equivocators l (s1, om) → strong_fixed_equivocation_constraint IM equivocators l (s2, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
om: option message

strong_fixed_equivocation_constraint IM equivocators l (s1, om) → strong_fixed_equivocation_constraint IM equivocators l (s2, om)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message

strong_fixed_equivocation_constraint IM equivocators l (s1, Some m) → strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message

( m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m) → strong_fixed_equivocation_constraint IM equivocators l (s1, Some m) → strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message

( m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m) → strong_fixed_equivocation_constraint IM equivocators l (s1, Some m) → strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m
j: index
Hj: j ∉ elements equivocators
Hsent: has_been_sent (IM j) (s1 j) m

strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m
Hemit: can_emit (equivocators_composition_for_sent IM equivocators s1) m
strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m
j: index
Hj: j ∉ elements equivocators
Hsent: has_been_sent (IM j) (s1 j) m

strong_fixed_equivocation_constraint IM equivocators l (s2, Some m)
by left; apply Hsent_impl; exists j.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m
Hemit: can_emit (equivocators_composition_for_sent IM equivocators s1) m

strong_fixed_equivocation_constraint IM equivocators l (s2, Some 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m
Hemit: can_emit (equivocators_composition_for_sent IM equivocators s1) m

can_emit (equivocators_composition_for_sent IM equivocators s2) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
Hsent_impl: m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 m

can_emit (equivocators_composition_for_sent IM equivocators s1) m → can_emit (equivocators_composition_for_sent IM equivocators s2) m
by apply VLSM_incl_can_emit, preloaded_vlsm_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message

m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM

m : message, sent_by_non_equivocating IM equivocators s1 m → sent_by_non_equivocating IM equivocators s2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

sent_by_non_equivocating IM equivocators s2 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

(i ∉ elements equivocators) ∧ has_been_sent (IM i) (s2 i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

has_been_sent (IM i) (s2 i) 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

s1 i = s2 i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m
Hi': i ∈ elements non_equivocators
s1 i = s2 i
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ list_to_set (enum index) ∧ i ∉ 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ enum index ∧ i ∉ 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ enum index
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m
i ∉ 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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∈ enum index
by apply elem_of_enum.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m

i ∉ equivocators
by rewrite <- elem_of_elements.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
s1, s2: composite_state IM
Heq: composite_state_sub_projection IM (elements non_equivocators) s1 = composite_state_sub_projection IM (elements non_equivocators) s2
l: composite_label IM
m: message
i: index
Hi: i ∉ elements equivocators
Hsent: has_been_sent (IM i) (s1 i) m
Hi': i ∈ elements non_equivocators

s1 i = s2 i
by eapply f_equal_dep with (x := dexist i Hi') in Heq. Qed.
All valid traces in the induced projection of the composition under the fixed-equivocation constraint to the non-equivocating components can be lifted to valid traces of the constrained composition.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

VLSM_embedding FixedNonEquivocating Fixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

VLSM_embedding FixedNonEquivocating Fixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

(sX : state FixedNonEquivocating) (trX : list transition_item), finite_valid_trace FixedNonEquivocating sX trX → finite_valid_trace Fixed (lift_sub_state IM (elements non_equivocators) sX) (pre_VLSM_embedding_finite_trace_project FixedNonEquivocating Fixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators)) trX)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item
Htr: finite_valid_trace FixedNonEquivocating sX trX

finite_valid_trace Fixed (lift_sub_state IM (elements non_equivocators) sX) (pre_VLSM_embedding_finite_trace_project FixedNonEquivocating Fixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators)) trX)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item
Htr: finite_valid_trace FixedNonEquivocating sX trX

finite_valid_trace {| vlsm_type := strong_fixed_equivocation_vlsm_composition IM equivocators; vlsm_machine := strong_fixed_equivocation_vlsm_composition IM equivocators |} (lift_sub_state IM (elements non_equivocators) sX) (pre_VLSM_embedding_finite_trace_project FixedNonEquivocating Fixed (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators)) trX)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item
Htr: finite_valid_trace FixedNonEquivocating sX trX

finite_valid_trace StrongFixedNonEquivocating sX trX
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item

finite_valid_trace FixedNonEquivocating sX trX → finite_valid_trace StrongFixedNonEquivocating sX trX
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item

VLSM_incl_part (preloaded_vlsm_machine (projection_induced_validator (composite_vlsm IM (fixed_equivocation_constraint IM equivocators)) (composite_type (sub_IM IM (elements non_equivocators))) (composite_label_sub_projection_option IM (elements non_equivocators)) (composite_state_sub_projection IM (elements non_equivocators)) (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators))) (λ _ : message, True)) (preloaded_vlsm_machine (projection_induced_validator (composite_vlsm IM (strong_fixed_equivocation_constraint IM equivocators)) (composite_type (sub_IM IM (elements non_equivocators))) (composite_label_sub_projection_option IM (elements non_equivocators)) (composite_state_sub_projection IM (elements non_equivocators)) (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators))) (λ _ : message, True))
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
sX: state FixedNonEquivocating
trX: list transition_item

input_valid_constraint_subsumption (free_composite_vlsm IM) (fixed_equivocation_constraint IM equivocators) (strong_fixed_equivocation_constraint IM equivocators)
by apply fixed_strong_equivocation_subsumption. Qed.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

projection_friendly_prop (induced_sub_projection_is_projection IM (elements non_equivocators) (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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

projection_friendly_prop (induced_sub_projection_is_projection IM (elements non_equivocators) (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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message

VLSM_embedding (pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators)) (composite_vlsm IM (fixed_equivocation_constraint IM equivocators)) (lift_sub_label IM (elements non_equivocators)) (lift_sub_state IM (elements non_equivocators))
by apply lift_fixed_non_equivocating. Qed.
The valid traces of the induced projection of the composition under the fixed-equivocation constraint to the non-equivocating components are precisely projections of traces of the constrained composition.
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
is: state FixedNonEquivocating
tr: list transition_item

finite_valid_trace FixedNonEquivocating is tr ↔ ( (eis : state Fixed) (etr : list transition_item), finite_valid_trace Fixed eis etr ∧ composite_state_sub_projection IM (elements non_equivocators) eis = is ∧ finite_trace_sub_projection IM (elements non_equivocators) etr = tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
is: state FixedNonEquivocating
tr: list transition_item

finite_valid_trace FixedNonEquivocating is tr ↔ ( (eis : state Fixed) (etr : list transition_item), finite_valid_trace Fixed eis etr ∧ composite_state_sub_projection IM (elements non_equivocators) eis = is ∧ finite_trace_sub_projection IM (elements non_equivocators) etr = tr)
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)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocators: Ci
non_equivocators:= list_to_set (enum index) ∖ equivocators: Ci
Free:= free_composite_vlsm IM: VLSM message
Fixed:= fixed_equivocation_vlsm_composition IM equivocators: VLSM message
FixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators): VLSM message
StrongFixed:= strong_fixed_equivocation_vlsm_composition IM equivocators: VLSM message
StrongFixedNonEquivocating:= pre_induced_sub_projection IM (elements non_equivocators) (strong_fixed_equivocation_constraint IM equivocators): VLSM message
is: state FixedNonEquivocating
tr: list transition_item

projection_friendly_prop (induced_sub_projection_is_projection IM (elements non_equivocators) (fixed_equivocation_constraint IM equivocators))
by apply fixed_non_equivocating_projection_friendliness. Qed. End sec_fixed_non_equivocator_lifting.