Built with Alectryon, running Coq+SerAPI v8.18.0+0.18.1. Bubbles () indicate interactive fragments: hover for details, tap to reveal contents. Use Ctrl+↑ Ctrl+↓ to navigate, Ctrl+🖱️ to focus. On Mac, use instead of Ctrl.
[Loading ML file ring_plugin.cmxs (using legacy method) ... done]
[Loading ML file zify_plugin.cmxs (using legacy method) ... done]
[Loading ML file micromega_plugin.cmxs (using legacy method) ... done]
[Loading ML file btauto_plugin.cmxs (using legacy method) ... done]
[Loading ML file coq-itauto.plugin ... done]
From stdpp Require Import prelude finite. From VLSM.Lib Require Import Preamble ListExtras StdppListSet. From VLSM.Core Require Import VLSM VLSMProjections Composition Equivocation. From VLSM.Core Require Import Equivocation.NoEquivocation Equivocation.FullNode. From VLSM.Core Require Import Equivocation.FixedSetEquivocation. From VLSM.Core Require Import SubProjectionTraces ProjectionTraces. From VLSM.Core Require Import Equivocators.Equivocators Equivocators.EquivocatorsProjections.
[Loading ML file extraction_plugin.cmxs (using legacy method) ... done]
[Loading ML file equations_plugin.cmxs (using legacy method) ... done]
From VLSM.Core Require Import Equivocators.EquivocatorsComposition. From VLSM.Core Require Import Equivocators.EquivocatorsCompositionProjections.

Core: VLSM Equivocators Fixed Equivocation

Section sec_equivocators_fixed_equivocations_vlsm.

Context
  {message : Type}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  (equivocator_IM := equivocator_IM IM)
  (equivocating : set index)
  .
Definition of fixed-equivocation for states of the composition of equivocators.
Definition state_has_fixed_equivocation
  (s : composite_state equivocator_IM)
  : Prop
  :=
  equivocating_indices IM (enum index) s ⊆ equivocating.

Definition equivocators_fixed_equivocations_constraint
  (l : composite_label equivocator_IM)
  (som : composite_state equivocator_IM * option message)
  (som' := composite_transition equivocator_IM l som)
  : Prop
  := equivocators_no_equivocations_constraint IM l som
  /\ state_has_fixed_equivocation (fst som').
If the starting state_has_fixed_equivocation and the transition is made on an equivocating index, then the resulting state_has_fixed_equivocation.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: projT1 l ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'
n: i ≠ projT1 l

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
x: index
l: EquivocatorLabel (IM x)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: (let (si', om') := equivocator_transition (IM x) l (s x, om) in (state_update equivocator_IM s x si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'
n: i ≠ x

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
x: index
l: EquivocatorLabel (IM x)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
e: equivocator_state (IM x)
o: option message
Ht: (state_update equivocator_IM s x e, o) = (s', om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'
n: i ≠ x

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
x: index
l: EquivocatorLabel (IM x)
s: composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: i ∈ equivocating_indices IM (enum index) (state_update equivocator_IM s x e)
n: i ≠ x

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
x: index
l: EquivocatorLabel (IM x)
s: composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s x e i)
n: i ≠ x

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
x: index
l: EquivocatorLabel (IM x)
s: composite_state equivocator_IM
om, om': option message
e: equivocator_state (IM x)
Ht: (state_update equivocator_IM s x e, om') = (state_update equivocator_IM s x e, om')
Hs: state_has_fixed_equivocation s
Heqv: x ∈ equivocating
i: index
Hi: is_equivocating_state (IM i) (s i)
n: i ≠ x

i ∈ equivocating
by apply Hs, elem_of_list_filter; split; [| apply elem_of_enum]. Qed.
If the starting state_has_fixed_equivocation and the transition is made on the original copy, then the resulting state_has_fixed_equivocation.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: i ∈ equivocating_indices IM (enum index) s'

i ∈ equivocating_indices IM (enum index) s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

i ∈ equivocating_indices IM (enum index) s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i) ∧ i ∈ enum index
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: composite_transition equivocator_IM l (s, om) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
l: composite_label equivocator_IM
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (s i, om) in (state_update equivocator_IM s i si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 l))
Hzero: projT2 l = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
Ht: (let (si', om') := equivocator_transition (IM eqv) leqv (s eqv, om) in (state_update equivocator_IM s eqv si', om')) = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
si': equivocator_state (IM eqv)
_om': option message
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', _om')
Ht: (state_update equivocator_IM s eqv si', _om') = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om: option message
s': composite_state equivocator_IM
om': option message
si': equivocator_state (IM eqv)
_om': option message
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', _om')
Ht: (state_update equivocator_IM s eqv si', _om') = (s', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (s' i)
H2: state_update equivocator_IM s eqv si' = s'
H3: _om' = om'

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Ht: (state_update equivocator_IM s eqv si', om') = (state_update equivocator_IM s eqv si', om')
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
i: index
Hi: is_equivocating_state (IM i) (state_update equivocator_IM s eqv si' i)

is_equivocating_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
eqv: index
leqv: label (equivocator_IM eqv)
s: composite_state equivocator_IM
om, om': option message
si': equivocator_state (IM eqv)
Hti: equivocator_transition (IM eqv) leqv (s eqv, om) = (si', om')
Hs: state_has_fixed_equivocation s
li: label (IM (projT1 (existT eqv leqv)))
Hzero: projT2 (existT eqv leqv) = ContinueWith 0 li
Hi: is_equivocating_state (IM eqv) si'

is_equivocating_state (IM eqv) (s eqv)
by apply (zero_descriptor_transition_reflects_equivocating_state (IM eqv) _ _ _ _ _ Hti _ Hzero Hi). Qed.
If a future state has fixed equivocation, then so must the current state.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s1, s2: composite_state equivocator_IM
Hfutures: in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s1, s2: composite_state equivocator_IM
Hfutures: in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s1, s2: composite_state equivocator_IM
tr: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s1 s2 tr

state_has_fixed_equivocation s2 → state_has_fixed_equivocation s1
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation f → state_has_fixed_equivocation s

state_has_fixed_equivocation f → state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation f → state_has_fixed_equivocation s
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
IHHtr: state_has_fixed_equivocation s
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
Hf: state_has_fixed_equivocation f

state_has_fixed_equivocation s → state_has_fixed_equivocation s'
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: input_valid_transition (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) l (s', iom) (s, oom)
Hf: state_has_fixed_equivocation f

equivocating_indices IM (enum index) s' ⊆ equivocating_indices IM (enum index) s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Ht: transition l (s', iom) = (s, oom)
Hf: state_has_fixed_equivocation f

equivocating_indices IM (enum index) s' ⊆ equivocating_indices IM (enum index) s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
tl: list transition_item
Htr: finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM)) s f tl
s': state (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
iom, oom: option message
l: label (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
Hf: state_has_fixed_equivocation f

transition l (s', iom) = (s, oom) → equivocating_indices IM (enum index) s' ⊆ equivocating_indices IM (enum index) s
by rapply @equivocators_transition_preserves_equivocating_indices. Qed.
Composition of equivocators with no message equivocation and a fixed set of machines allowed to state-equivocate.
Definition equivocators_fixed_equivocations_vlsm
  : VLSM message
  :=
  composite_vlsm equivocator_IM equivocators_fixed_equivocations_constraint.

message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
His: initial_state_prop is
i: index
Hi: i ∉ equivocating

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (is i)

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)
IHHtr: is_singleton_state (IM i) (s i) → is_singleton_state (IM i) (f i)

is_singleton_state (IM i) (f i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Hfixed: state_has_fixed_equivocation (composite_transition equivocator_IM l (s', iom)).1
Ht: transition l (s', iom) = (s, oom)
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': composite_state equivocator_IM
iom, oom: option message
l: composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation s
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': composite_state equivocator_IM
iom, oom: option message
l: composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation s
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

is_singleton_state (IM i) (s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': composite_state equivocator_IM
iom, oom: option message
l: composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation s
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: composite_state equivocator_IM
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': composite_state equivocator_IM
iom, oom: option message
l: composite_label equivocator_IM
Hfixed: state_has_fixed_equivocation s
i: index
Hi: i ∉ equivocating
H1: is_singleton_state (IM i) (s' i)
n: equivocator_state_n (s i) ≠ 1

i ∈ equivocating_indices IM (enum index) s
by apply elem_of_list_filter; split; [| apply elem_of_enum]. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
Hs: valid_state_prop equivocators_fixed_equivocations_vlsm s

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
Hs: (is : state equivocators_fixed_equivocations_vlsm) (tr : list transition_item), finite_valid_trace_init_to equivocators_fixed_equivocations_vlsm is s tr

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
His: state_has_fixed_equivocation is
state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is

state_has_fixed_equivocation is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: i ∈ equivocating_indices IM (enum index) is

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: is_equivocating_state (IM i) (is i) ∧ i ∈ enum index

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
His: is_equivocating_state (IM i) (is i)
Hin: i ∈ enum index

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
His: ¬ is_singleton_state (IM i) (is i)
Hin: i ∈ enum index

i ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
i: index
Hin: i ∈ enum index

is_singleton_state (IM i) (is i)
by apply Hinit.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
Hinit: initial_state_prop is
His: state_has_fixed_equivocation is

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s: composite_state equivocator_IM
is: state equivocators_fixed_equivocations_vlsm
tr: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm is s tr
His: state_has_fixed_equivocation is

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
His: state_has_fixed_equivocation s'
IHHtr: state_has_fixed_equivocation s → state_has_fixed_equivocation f

state_has_fixed_equivocation f
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Ht: input_valid_transition equivocators_fixed_equivocations_vlsm l (s', iom) (s, oom)
His: state_has_fixed_equivocation s'

state_has_fixed_equivocation s
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index
s, f: state equivocators_fixed_equivocations_vlsm
tl: list transition_item
Htr: finite_valid_trace_from_to equivocators_fixed_equivocations_vlsm s f tl
s': state equivocators_fixed_equivocations_vlsm
iom, oom: option message
l: label equivocators_fixed_equivocations_vlsm
Hv: state_has_fixed_equivocation (composite_transition equivocator_IM l (s', iom)).1
Ht: transition l (s', iom) = (s, oom)
His: state_has_fixed_equivocation s'

state_has_fixed_equivocation s
by setoid_rewrite Ht in Hv. Qed.
Inclusion in the free composition.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (free_composite_vlsm equivocator_IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (free_composite_vlsm equivocator_IM)
by apply VLSM_incl_constrained_vlsm. Qed.
Inclusion into the preloaded free composition.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
by apply constrained_preloaded_incl. Qed.
Inclusion of preloaded machine into the preloaded free composition.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl (preloaded_with_all_messages_vlsm equivocators_fixed_equivocations_vlsm) (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl (preloaded_with_all_messages_vlsm equivocators_fixed_equivocations_vlsm) (preloaded_with_all_messages_vlsm (free_composite_vlsm equivocator_IM))
by apply basic_VLSM_incl_preloaded; [intro | inversion 1 | intro]. Qed.
Inclusion in the composition of equivocators with no message equivocation (no restriction on state equivocation).
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (equivocators_no_equivocations_vlsm IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

VLSM_incl equivocators_fixed_equivocations_vlsm (equivocators_no_equivocations_vlsm IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating: set index

input_valid_constraint_subsumption (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM)) equivocators_fixed_equivocations_constraint (equivocators_no_equivocations_constraint IM)
by intros l [s om] Hv; apply Hv. Qed. End sec_equivocators_fixed_equivocations_vlsm.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2

VLSM_incl (equivocators_fixed_equivocations_vlsm IM equivocating1) (equivocators_fixed_equivocations_vlsm IM equivocating2)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2

VLSM_incl (equivocators_fixed_equivocations_vlsm IM equivocating1) (equivocators_fixed_equivocations_vlsm IM equivocating2)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2

input_valid_constraint_subsumption (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM equivocating1) (equivocators_fixed_equivocations_constraint IM equivocating2)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2

strong_constraint_subsumption (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM equivocating1) (equivocators_fixed_equivocations_constraint IM equivocating2)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2
l: label (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
_s: state (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
om: option message
Hmsg: equivocators_no_equivocations_constraint IM l (_s, om)
Hfixed: state_has_fixed_equivocation IM equivocating1 (composite_transition (EquivocatorsComposition.equivocator_IM IM) l (_s, om)).1

equivocators_fixed_equivocations_constraint IM equivocating2 l (_s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2
l: label (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
_s: state (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
om: option message
Hmsg: equivocators_no_equivocations_constraint IM l (_s, om)
Hfixed: state_has_fixed_equivocation IM equivocating1 (composite_transition (EquivocatorsComposition.equivocator_IM IM) l (_s, om)).1

state_has_fixed_equivocation IM equivocating2 (composite_transition (EquivocatorsComposition.equivocator_IM IM) l (_s, om)).1
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
equivocator_IM:= EquivocatorsComposition.equivocator_IM IM: index → VLSM message
equivocating1, equivocating2: set index
Hincl: equivocating1 ⊆ equivocating2
l: label (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
_s: state (free_composite_vlsm (EquivocatorsComposition.equivocator_IM IM))
om: option message
Hmsg: equivocators_no_equivocations_constraint IM l (_s, om)
Hfixed: state_has_fixed_equivocation IM equivocating1 (composite_transition (EquivocatorsComposition.equivocator_IM IM) l (_s, om)).1

equivocating_indices IM (enum index) (composite_transition (EquivocatorsComposition.equivocator_IM IM) l (_s, om)).1 ⊆ equivocating2
by set_solver. Qed. Section sec_fixed_equivocation_with_fullnode.
This section instantiates the full_node_condition_for_admissible_equivocators by choosing the admissible indices to be the fixed set of components allowed to equivocate, and then shows that this constraint is stronger than the fixed_equivocation_constraint.
Context setting the stage for, and instantiating the full_node_condition_for_admissible_equivocators. It requires that the components have has_been_sent and has_been_received capabilities, that the number of components is finite.
Additionally to the above we require that equality on messages is decidable and that the set of VLSMs allowed to equivocate is non-empty.
Context
  `{EqDecision message}
  `{FinSet index Ci}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  `{forall i : index, HasBeenReceivedCapability (IM i)}
  (equivocating : Ci)
  .
The full_node_constraint_alt is stronger than the fixed_equivocation_constraint.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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) (full_node_condition_for_admissible_equivocators_alt IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating)) (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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) (full_node_condition_for_admissible_equivocators_alt IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating)) (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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: full_node_condition_for_admissible_equivocators_alt IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating) l ( s, Some m)

fixed_equivocation_constraint IM equivocating l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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
i: index
Hi: i ∈ equivocating
Hm: node_generated_without_further_equivocation_alt IM s m i

fixed_equivocation_constraint IM equivocating l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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
i: index
Hi: i ∈ equivocating
Hm: can_emit (preloaded_vlsm (IM i) (composite_has_been_directly_observed IM s)) m

fixed_equivocation_constraint IM equivocating l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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
i: index
Hi: i ∈ equivocating
Hm: can_emit (preloaded_vlsm (IM i) (composite_has_been_directly_observed IM s)) m

can_emit (equivocators_composition_for_directly_observed IM equivocating s) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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
i: index
Hi: i ∈ elements equivocating
Hm: can_emit (preloaded_vlsm (IM i) (composite_has_been_directly_observed IM s)) m

can_emit (equivocators_composition_for_directly_observed IM equivocating s) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: 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
i: index
Hi: i ∈ elements equivocating
Hm: can_emit (preloaded_vlsm (IM i) (composite_has_been_directly_observed IM s)) m

m : message, composite_has_been_directly_observed IM s m → composite_has_been_directly_observed IM s m
by eauto. Qed.
If all components have the cannot_resend_message_stepwise_property, then the full node condition is stronger than the fixed_equivocation_constraint (by reduction to the result above).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)

preloaded_constraint_subsumption (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating)) (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)

preloaded_constraint_subsumption (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating)) (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)
l: label (free_composite_vlsm IM)
s: state (preloaded_with_all_messages_vlsm (constrained_vlsm (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating))))
om: option message
Hv: input_constrained (constrained_vlsm (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating))) l ( s, om)

fixed_equivocation_constraint IM equivocating l (s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
Hno_resend: i : index, cannot_resend_message_stepwise_prop (IM i)
l: label (free_composite_vlsm IM)
s: state (preloaded_with_all_messages_vlsm (constrained_vlsm (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating))))
om: option message
Hv: input_constrained (constrained_vlsm (free_composite_vlsm IM) (full_node_condition_for_admissible_equivocators IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating))) l ( s, om)

full_node_condition_for_admissible_equivocators_alt IM (λ (_ : composite_state IM) (i : index), i ∈ equivocating) l (s, om)
by eapply full_node_condition_for_admissible_equivocators_subsumption. Qed. End sec_fixed_equivocation_with_fullnode. Section sec_from_equivocators_to_components.

From composition of equivocators to composition of simple components

In this section we show that the projection of valid_traces of a composition of equivocators with a fixed equivocation constraint are valid_traces for the composition with a similar fixed equivocation constraint.
Context
  `{EqDecision message}
  {index : 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)
  (XE : VLSM message := equivocators_fixed_equivocations_vlsm IM (elements equivocating))
  (X : VLSM message := fixed_equivocation_vlsm_composition IM equivocating)
  (FreeE : VLSM message := free_composite_vlsm (equivocator_IM IM))
  (Hdec_init : forall i, decidable_initial_messages_prop (IM i))
  (Free := free_composite_vlsm IM)
  .
proper_equivocator_descriptors strengthen for fixed-equivocation. We require that if the index is not equivocating, than the corresponding descriptor is a zero_descriptor.
Definition proper_fixed_equivocator_descriptors
  (eqv_descriptors : equivocator_descriptors IM)
  (s : state (free_composite_vlsm (equivocator_IM IM)))
  : Prop
  := proper_equivocator_descriptors IM eqv_descriptors s /\
    forall i, i ∉ equivocating -> eqv_descriptors i = Existing 0.
not_equivocating_equivocator_descriptors satisfy the proper_fixed_equivocator_descriptors property.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s

proper_fixed_equivocator_descriptors eqv_descriptors s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s

i : index, i ∉ equivocating → eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
i: index
Hi: i ∉ elements equivocating

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors s
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
i: index
Hi: i ∉ elements equivocating
Hzero: equivocator_state_n (s i) = 1

eqv_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
Heqv_descriptors: existing_descriptor (IM i) (Existing n) (s i)
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ elements equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
s_i_n: state (IM i)
Heqv_descriptors: equivocator_state_project (s i) n = Some s_i_n
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ elements equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
eqv_descriptors: equivocator_descriptors IM
i: index
n: nat
s_i_n: state (IM i)
Heqv_descriptors: n < equivocator_state_n (s i)
Hproper: proper_equivocator_descriptors IM eqv_descriptors s
Hi: i ∉ elements equivocating
Hzero: equivocator_state_n (s i) = 1

Existing n = Existing 0
by f_equal; lia. Qed.
Projections of (valid) traces of the composition of equivocators preserve proper_fixed_equivocator_descriptors.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)

proper_fixed_equivocator_descriptors descriptors s → proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)

proper_fixed_equivocator_descriptors descriptors s → proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0

proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is

proper_fixed_equivocator_descriptors idescriptors is
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is

i : index, i ∉ equivocating → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hfixed: i : index, i ∉ equivocating → descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is
i: index
Hi: i ∉ equivocating

idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hfixed: descriptors i = Existing 0
Hiproper: proper_equivocator_descriptors IM idescriptors is
Hi: i ∉ equivocating

idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hiproper: proper_equivocator_descriptors IM idescriptors is
Hi: i ∉ equivocating

descriptors i = Existing 0 → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
i: index
Hiproper: proper_equivocator_descriptors IM idescriptors is

descriptors i = Existing 0 → idescriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_constrained_trace_from FreeE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors, idescriptors: equivocator_descriptors IM
trX: list (composite_transition_item IM)
HtrX: equivocators_trace_project IM descriptors tr = Some (trX, idescriptors)
Hproper: proper_equivocator_descriptors IM descriptors s
Hiproper: proper_equivocator_descriptors IM idescriptors is

i : index, descriptors i = Existing 0 → idescriptors i = Existing 0
by eapply equivocators_trace_project_preserves_zero_descriptors. Qed.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
Hes: initial_state_prop es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

initial_state_prop (equivocators_state_project IM eqv_descriptors es)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
Hes: initial_state_prop es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

initial_state_prop (equivocators_state_project IM eqv_descriptors es)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
Hes: initial_state_prop es
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es
eqv: index

initial_state_prop (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

initial_state_prop (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

initial_state_prop (equivocators_state_project IM eqv_descriptors es eqv)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_equivocator_descriptors IM eqv_descriptors es

initial_state_prop (equivocator_state_descriptor_project (es eqv) (eqv_descriptors eqv))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
Heqv: proper_descriptor (IM eqv) (eqv_descriptors eqv) (es eqv)

initial_state_prop (equivocator_state_descriptor_project (es eqv) (eqv_descriptors eqv))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
Heqv: proper_descriptor (IM eqv) (Existing i) (es eqv)

initial_state_prop (equivocator_state_descriptor_project (es eqv) (Existing i))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: state (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

initial_state_prop (equivocator_state_descriptor_project (es eqv) (Existing i))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: state (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

initial_state_prop (default (equivocator_state_zero (es eqv)) (equivocator_state_project (es eqv) i))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
es: state XE
eqv: index
Hes: initial_state_prop (es eqv)
eqv_descriptors: equivocator_descriptors IM
i: nat
esi: state (IM eqv)
Heqsi: equivocator_state_project (es eqv) i = Some esi

initial_state_prop (default (equivocator_state_zero (es eqv)) (Some esi))
by eapply equivocator_vlsm_initial_state_preservation_rev. Qed.
This is a property of the fixed_equivocation_constraint which also trivially holds for the free constraint. This property is sufficient for proving the _equivocators_valid_trace_project lemma, which lets that lemma be used for both the composition of equivocators with fixed state-equivocation and the free composition.
It basically says that if a message has_been_sent for a state of the composition of equivocators with no-message equivocations and fixed state-equivocations, then any of its projections should be allowed to receive it.
Definition constraint_has_been_sent_prop
  (constraint : composite_label IM -> composite_state IM * option message -> Prop)
  : Prop :=
  forall
    (s : composite_state (equivocator_IM IM))
    (Hs : valid_state_prop XE s)
    (descriptors : equivocator_descriptors IM)
    (Hdescriptors : proper_fixed_equivocator_descriptors descriptors s)
    (sX := equivocators_state_project IM descriptors s)
    (m : message)
    (Hm : has_been_sent FreeE s m)
    l,
  constraint l (sX, Some m).
Generic proof that the projection of a trace of the composition of equivocators with no message equivocation and fixed state equivocation is valid w.r.t. the composition of the regular components constrained by any constraint satisfying several properties, including the constraint_has_been_sent_property.
The proof proceeds by well founded induction on the length of the trace, performing an analysis on the final transition item of the trace.
It uses the fact that the trace has no message equivocation to extract a subtrace producing the message being received at the last transition and proves that it's a valid message for the destination machine by using the induction hypothesis (that is why well-founded induction is used rather than a simpler induction principle).
The constraint satisfaction for the projection of the final transition is for now assumes as hypothesis Hconstraint_hbs.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat
Heqlen_tr: len_tr = length tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat

tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → len_tr = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
len_tr: nat
IHlen: y : nat, y < len_tr → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
Heqlen_tr: len_tr = length tr
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
IHlen: y : nat, y < length tr → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is tr
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
IHlen: y : nat, y < length [] → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
IHlen: y : nat, y < length [] → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = []

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

let isX := equivocators_state_project IM final_descriptors is in let final_stateX := finite_trace_last isX [] in proper_fixed_equivocator_descriptors final_descriptors is ∧ equivocators_trace_project IM final_descriptors [] = Some ([], final_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

equivocators_trace_project IM final_descriptors [] = Some ([], final_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM final_descriptors is) [] ∧ finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM final_descriptors is) [] ∧ finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state

finite_valid_trace X' (equivocators_state_project IM final_descriptors is) []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

initial_state_prop isx → finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
initial_state_prop isx
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

initial_state_prop isx → finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
His: initial_state_prop isx

finite_valid_trace X' isx []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
His: initial_state_prop isx

finite_valid_trace_from X' isx []
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
His: initial_state_prop isx

valid_state_prop X' isx
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
His: initial_state_prop isx

( is : initial_state X', isx = `is) ∨ ( (l : label X') (som : state X' * option message) (om' : option message), input_valid_transition X' l som (isx, om'))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is
His: initial_state_prop isx

is : initial_state X', isx = `is
by exists (exist _ _ His).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
Htr: finite_valid_trace XE is []
final_state:= finite_trace_last is []: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
isx: state (free_composite_vlsm IM)
Heqisx: isx = equivocators_state_project IM final_descriptors is

initial_state_prop isx
by subst; apply fixed_equivocators_initial_state_project; [apply Htr | apply Hproper].
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': length tr' < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace XE is (tr' ++ [lst])
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is (tr' ++ [lst])
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr' ∧ finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) ( s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) ( s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) ( s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: proper_equivocator_descriptors IM final_descriptors (destination lst) → (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) ( s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Hproperx: (oitem : option (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_transition_item_project IM final_descriptors lst = Some (oitem, eqv_descriptors') ∧ match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ eqv_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end ∧ ( s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM eqv_descriptors' s ∧ eqv_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (eqv_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (eqv_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM eqv_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM eqv_descriptors' s end)
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l lst) (s, input lst) → composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' s ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ s = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (s (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (s (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' s → composite_valid IM (l itemx) (sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' s end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) (tr' ++ [lst]) = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [lst]) tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors)) [lst]

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match equivocators_transition_item_project IM final_descriptors lst with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: finite_valid_trace_from XE (finite_trace_last is tr') [lst]
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
lst: composite_transition_item (equivocator_IM IM)
IHlen: y : nat, y < length (tr' ++ [lst]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE (l lst) (finite_trace_last is tr', input lst) (destination lst, output lst)
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination lst)
Htr_lst: tr = tr' ++ [lst]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors lst = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (l lst))) (projT2 (l lst)), existT (projT1 (l lst)) (existing_equivocator_label_extract (IM (projT1 (l lst))) (projT2 (l lst)) Hex) = l itemx) ∧ input lst = input itemx ∧ output lst = output itemx ∧ equivocators_state_project IM final_descriptors (destination lst) = destination itemx ∧ final_descriptors' (projT1 (l lst)) = equivocator_label_descriptor (projT2 (l lst)) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) → composite_transition (equivocator_IM IM) (l lst) (finite_trace_last is tr', input lst) = (destination lst, output lst) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (l lst)) (final_descriptors' (projT1 (l lst))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination lst) (projT1 (l lst)) (finite_trace_last is tr' (projT1 (l lst))) ∧ previous_state_descriptor_prop (IM (projT1 (l lst))) (final_descriptors (projT1 (l lst))) (finite_trace_last is tr' (projT1 (l lst))) (final_descriptors' (projT1 (l lst))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (l itemx) ( sx, input itemx) ∧ composite_transition IM (l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination lst) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (l lst) (s, input lst) = (destination lst, output lst) → composite_valid (equivocator_IM IM) (l lst) (s, input lst) → equivocators_transition_item_project IM final_descriptors lst = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → (final_state := finite_trace_last is tr) (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |})
Hinit: initial_state_prop is
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |})
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': (final_state := finite_trace_last is tr') (final_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors final_descriptors final_state → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X' isX trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) = VLSM.l itemx) ∧ input {| l := l; input := iom; destination := s; output := oom |} = input itemx ∧ output {| l := l; input := iom; destination := s; output := oom |} = output itemx ∧ equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination itemx ∧ final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = equivocator_label_descriptor (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) | None => True end
Hproperx: composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is tr', input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) (destination {| l := l; input := iom; destination := s; output := oom |}) (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ previous_state_descriptor_prop (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (finite_trace_last is tr' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (final_descriptors' (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → composite_valid IM (VLSM.l itemx) ( sx, input itemx) ∧ composite_transition IM (VLSM.l itemx) (sx, input itemx) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hlst: input_valid_transition XE l (finite_trace_last is tr', iom) ( s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in ( state_update IM sx i si', om')) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → (let (i, li) := l in equivocator_valid (IM i) li (s0 i, iom)) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in ( state_update IM sx i si', om')) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: (oitem : option (composite_transition_item IM)) (idescriptors : equivocator_descriptors IM) (s0 : composite_state (equivocator_IM IM)), (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → (let (i, li) := l in equivocator_valid (IM i) li (s0 i, iom)) → equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, idescriptors) → i : index, final_descriptors i = Existing 0 → idescriptors i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: (let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, iom)) → (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, iom) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, oom) → proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in ( state_update IM sx i si', om')) = ( destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hproperx: proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr') ∧ final_descriptors' = equivocator_descriptors_update IM final_descriptors (projT1 l) (final_descriptors' (projT1 l)) ∧ finite_trace_last is tr' = state_update (equivocator_IM IM) s (projT1 l) (finite_trace_last is tr' (projT1 l)) ∧ previous_state_descriptor_prop (IM (projT1 l)) (final_descriptors (projT1 l)) (finite_trace_last is tr' (projT1 l)) (final_descriptors' (projT1 l)) ∧ match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hzero: i : index, i ∉ equivocating → final_descriptors i = Existing 0
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
i: index
Hi: i ∉ equivocating

final_descriptors i = Existing 0
by apply Hzero.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
_Hproper': proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is tr')
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
Hzero: i : index, final_descriptors i = Existing 0 → final_descriptors' i = Existing 0
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
IH': final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr') → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace_from FreeE is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (free_composite_vlsm_machine (equivocator_IM IM))
by apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'

finite_constrained_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'

finite_constrained_trace FreeE is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'

finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is tr'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Hincl: VLSM_incl FreeE (preloaded_with_all_messages_vlsm FreeE)

finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is tr'
by apply (VLSM_incl_finite_valid_trace_from Hincl), Htr'.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
oitem: option (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (oitem, final_descriptors')
Hitemx: match oitem with | Some itemx => ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l itemx) ∧ iom = input itemx ∧ oom = output itemx ∧ equivocators_state_project IM final_descriptors s = destination itemx ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l) | None => True end
Hx: match oitem with | Some itemx => sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l itemx in valid li (sx i, input itemx)) ∧ (let (i, li) := VLSM.l itemx in let (si', om') := transition li (sx i, input itemx) in (state_update IM sx i si', om')) = (destination itemx, output itemx) | None => equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') end
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = match oitem with | Some item' => Some ([item'], final_descriptors') | None => Some ([], final_descriptors') end
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in valid li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := transition li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in valid li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := transition li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hitemx: ( Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item) ∧ iom = input item ∧ oom = output item ∧ equivocators_state_project IM final_descriptors s = destination item ∧ final_descriptors' (projT1 l) = equivocator_label_descriptor (projT2 l)
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in valid li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := transition li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hx: sx : composite_state IM, sx = equivocators_state_project IM final_descriptors' (finite_trace_last is tr') → (let (i, li) := VLSM.l item in valid li (sx i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := transition li (sx i, input item) in (state_update IM sx i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hx: (let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)) ∧ (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([item], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([item], final_descriptors')) tr' = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ Some (trX' ++ [item], initial_descriptors) = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

Some (trX' ++ [item], initial_descriptors) = Some (trX' ++ [item], initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) (trX' ++ [item]) ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (finite_trace_last is tr) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}])) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors (destination {| l := l; input := iom; destination := s; output := oom |}) = destination item ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) (trX' ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [item]
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [item]
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

finite_valid_trace_from X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') ([] ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
item: composite_transition_item IM
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some item, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l item
Hinput: iom = input item
Houtput: oom = output item
Hdestination: equivocators_state_project IM final_descriptors s = destination item
Hvx: let (i, li) := VLSM.l item in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item)
Htx: (let (i, li) := VLSM.l item in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input item) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination item, output item)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state X'
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace_from X' lst ([] ++ [item])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state X'
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

finite_valid_trace_from X' lst ([] ++ [{| l := l0; input := input; destination := destination; output := output |}])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state X'
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

finite_valid_trace_from X' lst ([] ++ [{| l := l0; input := input; destination := destination; output := output |}])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = VLSM.l {| l := l0; input := input; destination := destination; output := output |}
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state X'
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

input_valid_transition X' l0 (finite_trace_last lst [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hinput: iom = VLSM.input {| l := l0; input := input; destination := destination; output := output |}
Houtput: oom = VLSM.output {| l := l0; input := input; destination := destination; output := output |}
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
lst: state X'
Heqlst: lst = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
Hplst: valid_state_prop X' lst

input_valid_transition X' l0 (finite_trace_last lst [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) l (finite_trace_last is tr', input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Htx: (let (i, li) := VLSM.l {| l := l0; input := input; destination := destination; output := output |} in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, VLSM.input {| l := l0; input := input; destination := destination; output := output |}) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (VLSM.destination {| l := l0; input := input; destination := destination; output := output |}, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) l (finite_trace_last is tr', input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
Hvx: let (i, li) := l0 in valid li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (equivocators_state_project IM final_descriptors' (finite_trace_last is tr') i, input) in (state_update IM (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: option message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) l (finite_trace_last is tr', input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) l (finite_trace_last is tr', Some input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_no_equivocations (equivocator_IM IM) l (finite_trace_last is tr', Some input)
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: False ∨ composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_prop FreeE (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_message_prop FreeE (finite_trace_last is tr') _om
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
_om: option message
Hs: valid_state_message_prop XE (finite_trace_last is tr') _om
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')

valid_state_message_prop {| vlsm_type := composite_type (equivocator_IM IM); vlsm_machine := {| vlsm_type := free_composite_vlsm (equivocator_IM IM); vlsm_machine := composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM)) |} |} (finite_trace_last is tr') _om
by eapply (constraint_subsumption_valid_state_message_preservation (free_composite_vlsm _)).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: specialized_selected_message_exists_in_all_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm

valid_state_prop XE (finite_trace_last is tr')
by apply finite_valid_trace_last_pstate.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
IHlen: tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length tr' + length [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
IHlen: length tr' < length (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')

length tr' < length tr' + 1
lia.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
IHlen: tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → length tr' = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: label (composite_type IM)
input: message
destination: state (composite_type IM)
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: transition l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}) = (s, VLSM.output {| l := l0; input := Some input; destination := destination; output := output |})
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr', Some input).1 input
Hv: valid l (finite_trace_last is tr', VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hiom: option_valid_message_prop XE (VLSM.input {| l := l0; input := Some input; destination := destination; output := output |})
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := VLSM.input {| l := l0; input := Some input; destination := destination; output := output |}; destination := s; output := VLSM.output {| l := l0; input := Some input; destination := destination; output := output |} |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = VLSM.destination {| l := l0; input := Some input; destination := destination; output := output |}
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: initial_state_prop (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': equivocators_trace_project IM final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': equivocators_trace_project IM final_descriptors_m tr' = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
trXm': list (composite_transition_item IM)
initial_descriptors_m': equivocator_descriptors IM
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m' is
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm', initial_descriptors_m')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m' is) trXm'
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m' is) trXm'
H11: trXm = trXm'
H12: initial_descriptors_m = initial_descriptors_m'

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hproject_trXm': Some (trXm, initial_descriptors_m) = Some (trXm, initial_descriptors_m)
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

input_valid_transition X' l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input) (destination, output)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

option_valid_message_prop X' (Some input)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
constraint l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

option_valid_message_prop X' (Some input)
by eapply valid_trace_output_is_valid; [apply HtrXm |].
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

constraint l0 (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') [], Some input)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

constraint l0 (finite_trace_last (equivocators_state_project IM final_descriptors' (finite_trace_last is tr')) [], Some input)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is

has_been_sent FreeE (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: constrained_state_prop FreeE (finite_trace_last is tr')

has_been_sent FreeE (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: constrained_state_prop FreeE (finite_trace_last is tr')

selected_message_exists_in_all_preloaded_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s: composite_state (equivocator_IM IM)
l0: composite_label IM
input: message
destination: composite_state IM
output: option message
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is tr' i, Some input) in (state_update (equivocator_IM IM) (finite_trace_last is tr') i si', om')) = (s, output)
Hno_equiv: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is tr') input
Hv: let (i, li) := l in equivocator_valid (IM i) li (finite_trace_last is tr' i, Some input)
Hiom: option_valid_message_prop XE (Some input)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := Some input; destination := s; output := output |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := Some input; destination := s; output := output |} = Some (Some {| l := l0; input := Some input; destination := destination; output := output |}, final_descriptors')
Hl: Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex) = l0
Hdestination: equivocators_state_project IM final_descriptors s = destination
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hvx: let (i, li) := l0 in valid li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input)
Htx: (let (i, li) := l0 in let (si', om') := transition li (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' i, Some input) in (state_update IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX') i si', om')) = (destination, output)
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace_from X' (equivocators_state_project IM initial_descriptors is) trX'
His: composite_initial_state_prop IM (equivocators_state_project IM initial_descriptors is)
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is
Hplst: valid_state_prop X' (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX')
Hs_free: valid_state_prop FreeE (finite_trace_last is tr')
Hall: trace_has_message (field_selector VLSM.output) input tr'
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
_Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr')
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr' = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector VLSM.output input) trXm
Hfinal_descriptors_m: proper_fixed_equivocator_descriptors final_descriptors_m (finite_trace_last is tr')
Hpr_fin_tr': equivocators_state_project IM final_descriptors_m (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors_m is) trXm
HtrXm: finite_valid_trace X' (equivocators_state_project IM initial_descriptors_m is) trXm
Hproper_initial_m: proper_fixed_equivocator_descriptors initial_descriptors_m is
Hlst'pre: constrained_state_prop FreeE (finite_trace_last is tr')

selected_message_exists_in_some_preloaded_traces FreeE (field_selector VLSM.output) (finite_trace_last is tr') input
by red in Htr'pre; exists is, tr', (valid_trace_add_default_last Htr'pre).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

initial_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
foldx: option (list (composite_transition_item IM) * equivocator_descriptors IM)
Heqfoldx: foldx = Some ([], final_descriptors')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) foldx tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

proper_fixed_equivocator_descriptors initial_descriptors is ∧ foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

foldr (equivocators_trace_project_folder IM) (Some ([], final_descriptors')) tr' = Some (trX', initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX' ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr, tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is tr: composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
Htr_lst: tr = tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
constraint: composite_label IM → composite_state IM * option message → Prop
HconstraintNone: (l : composite_label IM) (s : composite_state IM), constraint l (s, None)
Hconstraint_hbs: constraint_has_been_sent_prop constraint
X':= composite_vlsm IM constraint: VLSM message
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
IHlen: y : nat, y < length (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]) → tr : list (composite_transition_item (equivocator_IM IM)), finite_valid_trace XE is tr → y = length tr → final_descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr) → (trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX ∧ finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX
Htr: finite_valid_trace_from XE is tr'
Hs: valid_state_prop XE (finite_trace_last is tr')
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is tr', iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is tr', iom)
Ht: transition l (finite_trace_last is tr', iom) = (s, oom)
Hinit: composite_initial_state_prop (equivocator_IM IM) is
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors s
final_descriptors': equivocator_descriptors IM
Hprojectx: equivocators_transition_item_project IM final_descriptors {| l := l; input := iom; destination := s; output := oom |} = Some (None, final_descriptors')
Hitemx: True
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
Hproper': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors' tr' = Some (trX', initial_descriptors)
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
HtrX': finite_valid_trace X' (equivocators_state_project IM initial_descriptors is) trX'
Htr': finite_valid_trace FreeE is tr'
Htr'pre: finite_constrained_trace FreeE is tr'
Hproper_initial: proper_fixed_equivocator_descriptors initial_descriptors is

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message, index: Type
EqDecision2: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

equivocators_state_project IM final_descriptors final_state = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
message, index: Type
EqDecision2: EqDecision index
IM: index → VLSM message
is: composite_state (equivocator_IM IM)
tr': list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
iom: option message
s: composite_state (equivocator_IM IM)
oom: option message
final_state:= finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}]): composite_state (equivocator_IM IM)
final_descriptors, final_descriptors': equivocator_descriptors IM
Hx: equivocators_state_project IM final_descriptors s = equivocators_state_project IM final_descriptors' (finite_trace_last is tr')
trX': list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hstate_project: equivocators_state_project IM final_descriptors' (finite_trace_last is tr') = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'

equivocators_state_project IM final_descriptors (finite_trace_last is (tr' ++ [{| l := l; input := iom; destination := s; output := oom |}])) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX'
by rewrite <- Hstate_project, <- Hx, finite_trace_last_is_last. Qed.
Instantiating the lemma above with the free constraint.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
trX: list (composite_transition_item IM)
idesc: equivocator_descriptors IM
Hex: let isX := equivocators_state_project IM idesc is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors idesc is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, idesc) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace (composite_vlsm IM (free_constraint IM)) isX trX

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
trX: list (composite_transition_item IM)
idesc: equivocator_descriptors IM
Hex: let isX := equivocators_state_project IM idesc is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors idesc is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, idesc) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace (composite_vlsm IM (free_constraint IM)) isX trX

let isX := equivocators_state_project IM idesc is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors idesc is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, idesc) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace (free_composite_vlsm IM) isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
trX: list (composite_transition_item IM)
idesc: equivocator_descriptors IM
Hex: let isX := equivocators_state_project IM idesc is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors idesc is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, idesc) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace (composite_vlsm IM (free_constraint IM)) isX trX

finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM idesc is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state XE
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr
trX: list (composite_transition_item IM)
idesc: equivocator_descriptors IM
Hex: let isX := equivocators_state_project IM idesc is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors idesc is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, idesc) ∧ equivocators_state_project IM final_descriptors (finite_trace_last is tr) = final_stateX ∧ finite_valid_trace (composite_vlsm IM (free_constraint IM)) isX trX

VLSM_incl_part (composite_vlsm IM (free_constraint IM)) (free_composite_vlsm_machine IM)
by apply free_composite_vlsm_spec. Qed.
A message sent by a non-state-equivocating machine can be directly observed in any projection of the final state.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state XE
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst

has_been_directly_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state XE
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst

has_been_directly_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
lst:= finite_trace_last is tr: state XE
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors lst
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_directly_observed Free (equivocators_state_project IM descriptors lst) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_directly_observed Free (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_constrained_trace FreeE is tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_constrained_trace FreeE is tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_incl.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr

has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr

finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr

finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr

VLSM_incl_part (free_composite_vlsm_machine IM) (preloaded_vlsm_machine Free (λ _ : message, True))
by apply vlsm_incl_preloaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX

has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX

constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX

constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX

finite_valid_trace_from (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
by apply HtrX_Pre.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_directly_observed Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_received Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m ∨ has_been_sent Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

has_been_sent Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_all_preloaded_traces Free (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces Free (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces Free (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: item ∈ tr
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
Hitem: l1 l2 : list transition_item, tr = l1 ++ item :: l2
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
pre, suf: list transition_item
Hitem: tr = pre ++ item :: suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
item: transition_item
pre, suf: list transition_item
Hitem: tr = pre ++ [item] ++ suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is tr
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace_from XE is (pre ++ [item])
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: valid_state_prop XE (finite_trace_last is (pre ++ [item]))
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
by rewrite finite_trace_last_is_last in Htr.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
preX', sufX': list (composite_transition_item IM)
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HpreX: trX = preX' ++ sufX'
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

trace_has_message (field_selector output) m (preX' ++ sufX')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) preX' ∨ Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (pre ++ [item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Htr_Pre: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM descriptors ([item] ++ suf) = Some (sufX', eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
Hpr_suf: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors'0 : equivocator_descriptors IM), equivocators_trace_project IM descriptors suf = Some (sufX, eqv_descriptors'0) ∧ equivocators_trace_project IM eqv_descriptors'0 [item] = Some (preX, eqv_descriptors') ∧ sufX' = preX ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
eqv_descriptors': equivocator_descriptors IM
pre_itemX, sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
HsufX': sufX' = pre_itemX ++ sufX''
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX'))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ sufX')
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) sufX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) (pre_itemX ++ sufX'')
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX ∨ Exists (field_selector output m) sufX''
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) ([item] ++ suf)
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item] ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))

i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0
by intros i Hi; eapply equivocators_trace_project_preserves_zero_descriptors, Hdescriptors.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': i : index, i ∉ equivocating → eqv_descriptors'' i = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: field_selector output m item
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: equivocators_trace_project IM eqv_descriptors'' [item] = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ item :: suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: output item = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ item :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ item :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: match equivocators_transition_item_project IM eqv_descriptors'' item with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: transition_item
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ item :: suf)
Hitem_not_equiv: projT1 (l item) ∉ equivocating
m: message
Hm: output item = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ item :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ item :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' item = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [item]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [item]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (l item)) = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
input: option message
destination: state (composite_type (equivocator_IM IM))
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}) ∉ equivocating
m: message
Hm: VLSM.output {| l := l; input := input; destination := destination; output := output |} = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |}))) (VLSM.destination {| l := l; input := input; destination := destination; output := output |} (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})))
Heqv_descriptors'': eqv_descriptors'' (projT1 (VLSM.l {| l := l; input := input; destination := destination; output := output |})) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: composite_label (equivocator_IM IM)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: composite_label (equivocator_IM IM)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: input_valid_transition (preloaded_with_all_messages_vlsm FreeE) (VLSM.l {| l := l; input := input; destination := destination; output := output |}) (finite_trace_last is pre, VLSM.input {| l := l; input := input; destination := destination; output := output |}) (VLSM.destination {| l := l; input := input; destination := destination; output := output |}, VLSM.output {| l := l; input := input; destination := destination; output := output |})
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: composite_label (equivocator_IM IM)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hpre_item_free: input_valid_transition (preloaded_with_all_messages_vlsm FreeE) l (finite_trace_last is pre, input) (destination, output)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: composite_label (equivocator_IM IM)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 l ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: valid l (finite_trace_last is pre, input)
Ht: transition l (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 l)) (destination (projT1 l))
Heqv_descriptors'': eqv_descriptors'' (projT1 l) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: label (equivocator_IM IM x)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: projT1 (existT x l) ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: valid (existT x l) (finite_trace_last is pre, input)
Ht: transition (existT x l) (finite_trace_last is pre, input) = (destination, output)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) [{| l := existT x l; input := input; destination := destination; output := output |}]) suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM (projT1 (existT x l))) (destination (projT1 (existT x l)))
Heqv_descriptors'': eqv_descriptors'' (projT1 (existT x l)) = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Ht: (let (si', om') := equivocator_transition (IM x) l (finite_trace_last is pre x, input) in (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', om')) = (destination, output)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) destination suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
destination: composite_state (equivocator_IM IM)
output: option message
pre, suf: list transition_item
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)
Hitem_not_equiv: x ∉ equivocating
m: message
Hm: output = Some m
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := destination; output := output |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := destination; output := output |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
si': equivocator_state (IM x)
om': option message
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', om')
Ht: (state_update (equivocator_IM IM) (finite_trace_last is pre) x si', om') = (destination, output)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) destination suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (destination x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector VLSM.output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x)
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: equivocators_transition_item_project IM eqv_descriptors'' {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: label (IM x)
Hsndv: l = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM (projT1 (VLSM.l {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}))) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' (projT1 (VLSM.l {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (VLSM.l {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) (VLSM.l item'); input := VLSM.input {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}; destination := equivocators_state_project IM eqv_descriptors'' (destination {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}); output := output {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} |}, equivocator_descriptors_update IM eqv_descriptors'' (projT1 (VLSM.l {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' (projT1 (VLSM.l {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: label (IM x)
Hsndv: l = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
l: EquivocatorLabel (IM x)
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x l; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (VLSM.l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hv: equivocator_valid (IM x) l (finite_trace_last is pre x, input)
Hti: equivocator_transition (IM x) l (finite_trace_last is pre x, input) = (si', Some m)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
li: label (IM x)
Hsndv: l = ContinueWith 0 li

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection (equivocator_IM IM) {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) (composite_transition_item_projection_from_eq (equivocator_IM IM) {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} (projT1 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) eq_refl) (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect_r (λ n : index, label (equivocator_IM IM n)) (projT2 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})) eq_refl; input := VLSM.input {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |}; destination := destination {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} (projT1 (l {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |})); output := output {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect_r (λ n : index, EquivocatorLabel (IM n)) (ContinueWith 0 li) eq_refl; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := eq_rect x (λ y : index, EquivocatorLabel (IM y)) (ContinueWith 0 li) x (eq_sym eq_refl); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := ContinueWith 0 li; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (eqv_descriptors'' x) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match equivocator_vlsm_transition_item_project (IM x) {| l := ContinueWith 0 li; input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x; output := Some m |} (Existing 0) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match match equivocator_state_project (state_update (equivocator_IM IM) (finite_trace_last is pre) x si' x) 0 with | Some sj => if decide (0 = 0) then Some (Some {| l := li; input := input; destination := sj; output := Some m |}, Existing 0) else Some (None, Existing 0) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors'' (state_update (equivocator_IM IM) (finite_trace_last is pre) x si'); output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match match equivocator_state_project si' 0 with | Some sj => if decide (0 = 0) then Some (Some {| l := li; input := input; destination := sj; output := Some m |}, Existing 0) else Some (None, Existing 0) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: match (if decide (0 = 0) then Some (Some {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}, Existing 0) else Some (None, Existing 0)) with | Some (Some item', deqv') => Some (Some {| l := existT x (l item'); input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors'' x deqv') | None => None end = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
o: option (composite_transition_item IM)
odescriptor: equivocator_descriptors IM
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (o, odescriptor)
Hpr_pre_item: match o with | Some item' => Some ([item'], odescriptor) | None => Some ([], odescriptor) end = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
H11: Some {| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |} = o
H12: equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0) = odescriptor

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr: Some (Some {| l := existT x (l {| l := li; input := input; destination := equivocator_state_zero si'; output := Some m |}); input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (Some {| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}, equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0))
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) pre_itemX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', pre_itemX, sufX'': list (composite_transition_item IM)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
eqv_descriptors', eqv_descriptors'': equivocator_descriptors IM
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some (pre_itemX, eqv_descriptors')
Hpr_pre: equivocators_trace_project IM eqv_descriptors' pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX'')
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ pre_itemX ++ sufX''))
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0
H11: [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] = pre_itemX
H12: equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0) = eqv_descriptors'

Exists (field_selector output m) [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}]
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre: equivocators_trace_project IM (equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) pre = Some (preX', initial_descriptors)
Hpr_pre_item: Some ([{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) = Some ([{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}], equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0))
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX''))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}]
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
x: index
input: option message
pre, suf: list transition_item
m: message
si': equivocator_state (IM x)
li: label (IM x)
Htr: finite_valid_trace XE is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)
Hitem_not_equiv: x ∉ equivocating
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf))
initial_descriptors: equivocator_descriptors IM
preX', sufX'': list (composite_transition_item IM)
eqv_descriptors'': equivocator_descriptors IM
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := existT x (ContinueWith 0 li); input := input; destination := state_update (equivocator_IM IM) (finite_trace_last is pre) x si'; output := Some m |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hpr_suf': equivocators_trace_project IM descriptors suf = Some (sufX'', eqv_descriptors'')
Hpr_pre: equivocators_trace_project IM (equivocator_descriptors_update IM eqv_descriptors'' x (Existing 0)) pre = Some (preX', initial_descriptors)
HtrX_Free: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hpre'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is pre
Hti: equivocator_transition (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input) = (si', Some m)
Hv: equivocator_valid (IM x) (ContinueWith 0 li) (finite_trace_last is pre x, input)
Hsuf'_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (state_update (equivocator_IM IM) (finite_trace_last is pre) x si') suf
Hlst_preX: constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX''))
HtrX_Pre: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) (preX' ++ [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}] ++ sufX'')
Hsingleton_d_item: is_singleton_state (IM x) si'
Heqv_descriptors'': eqv_descriptors'' x = Existing 0

Exists (field_selector output m) [{| l := existT x li; input := input; destination := state_update IM (equivocators_state_project IM eqv_descriptors'' (finite_trace_last is pre)) x match eqv_descriptors'' x with | NewMachine sn => sn | Existing i => match equivocator_state_project si' i with | Some si => si | None => equivocator_state_zero si' end end; output := Some m |}]
by constructor. Qed.
Consider a valid_trace for the composition of equivocators with no message equivocation and fixed state equivocation.
Because any of its projections to the composition of original components contains all transitions from components not allowed to equivocate, then a final state of such a projection will be able to observe all messages sent or received by non-equivocating components in the initial trace.
Therefore if seeding the composition of equivocating components with these messages, the restriction of the initial trace to only the equivocating components will satisfy the trace_sub_item_input_is_seeded_or_sub_previously_sent property w.r.t. these messages, a sufficient condition for it being valid (finite_valid_trace_sub_projection).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM lst_trX) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM lst_trX) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX

VLSM_incl_part (free_composite_vlsm_machine IM) (preloaded_vlsm_machine (free_composite_vlsm IM) (λ _ : message, True))
by apply vlsm_incl_preloaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

constrained_state_prop Free lst_trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX
composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

constrained_state_prop Free lst_trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

constrained_state_prop Free (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
by apply finite_valid_trace_last_pstate, HtrXPre.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX

finite_constrained_trace FreeE is tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is tr
composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX

finite_constrained_trace FreeE is tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_incl.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
tr: list transition_item
s:= finite_trace_last is tr: state XE
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Heq: tr = pre ++ [item] ++ suf
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is tr

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is (pre ++ [item])

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) [item]

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: finite_valid_trace_from XE (finite_trace_last is pre) [item]

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)

composite_has_been_directly_observed IM lst_trX m ∨ ( pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m

finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m

finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_incl.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)

constrained_state_prop FreeE s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)
Hs_free: constrained_state_prop FreeE s
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)

constrained_state_prop FreeE s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))

constrained_state_prop FreeE s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)): state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [item] ++ suf))
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last (finite_trace_last is pre) ([item] ++ suf))

constrained_state_prop FreeE (finite_trace_last is (pre ++ [item] ++ suf))
by rewrite finite_trace_last_app.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [item] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input item = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) item
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [item] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [item] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([item] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (l item) (finite_trace_last is pre, input item) (destination item, output item)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([item] ++ suf)
Hs_free: constrained_state_prop FreeE s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
iom: option message
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := iom; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: input {| l := l; input := iom; destination := s0; output := oom |} = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := iom; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s0; output := oom |}) (destination {| l := l; input := iom; destination := s0; output := oom |}, output {| l := l; input := iom; destination := s0; output := oom |})
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hs_free: constrained_state_prop FreeE s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
iom: option message
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := iom; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: iom = Some m
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := iom; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s0; output := oom |}) (destination {| l := l; input := iom; destination := s0; output := oom |}, output {| l := l; input := iom; destination := s0; output := oom |})
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := iom; destination := s0; output := oom |}] ++ suf)
Hs_free: constrained_state_prop FreeE s

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hivt: input_valid_transition XE (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}) (destination {| l := l; input := Some m; destination := s0; output := oom |}, output {| l := l; input := Some m; destination := s0; output := oom |})

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_no_equivocations (equivocator_IM IM) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM (elements equivocating) (composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})).1
Ht: transition (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}) = (destination {| l := l; input := Some m; destination := s0; output := oom |}, output {| l := l; input := Some m; destination := s0; output := oom |})

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_no_equivocations (equivocator_IM IM) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Ht: (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (finite_trace_last is pre i, Some m) in (state_update (equivocator_IM IM) (finite_trace_last is pre) i si', om')) = (s0, oom)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_no_equivocations (equivocator_IM IM) (VLSM.l {| l := l; input := Some m; destination := s0; output := oom |}) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |})
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

finite_valid_trace FreeE is pre
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

finite_valid_trace FreeE is pre
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

finite_valid_trace_from FreeE is pre
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (free_composite_vlsm_machine (equivocator_IM IM))
by apply equivocators_fixed_equivocations_vlsm_incl_free.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: composite_has_been_sent (equivocator_IM IM) (finite_trace_last is pre, input {| l := l; input := Some m; destination := s0; output := oom |}).1 m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper_sent: has_been_sent FreeE (finite_trace_last is pre) m → specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hproper_sent: has_been_sent FreeE (finite_trace_last is pre) m → specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: specialized_selected_message_exists_in_all_traces FreeE (field_selector output) (finite_trace_last is pre) m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: trace_has_message (field_selector output) m pre
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hc: x : transition_item, x ∈ pre ∧ field_selector output m x
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item : transition_item, pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

pre_item ∈ pre ∧ output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

output pre_item = Some m ∧ from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: equivocators_trace_project IM descriptors (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, initial_descriptors)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
_sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors IM
_Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (_sufX, _final_descriptors')
Hproper': proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_equivocator_descriptors IM descriptors (finite_trace_last (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
lst_trX:= equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)): state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
_sufX: list (composite_transition_item IM)
_final_descriptors': equivocator_descriptors IM
_Hsuf_project: Some (sufX, final_descriptors') = Some (_sufX, _final_descriptors')
Hproper': proper_equivocator_descriptors IM _final_descriptors' (finite_trace_last is pre)

proper_equivocator_descriptors IM final_descriptors' (finite_trace_last is pre)
by inversion _Hsuf_project; subst.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: (idescriptors : equivocator_descriptors IM) (trX : list (composite_transition_item IM)), equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (trX, idescriptors) → i : index, descriptors i = Existing 0 → idescriptors i = Existing 0

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hpr: i : index, descriptors i = Existing 0 → final_descriptors' i = Existing 0

i : index, i ∉ equivocating → final_descriptors' i = Existing 0
by intros i Hi; apply Hpr, (proj2 Hproper).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: l1 l2 : list transition_item, pre = l1 ++ pre_item :: l2
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = pre_pre ++ pre_item :: pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = pre_pre ++ [pre_item] ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}])) suf
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_s0: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}])
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hpre_item: pre = (pre_pre ++ [pre_item]) ++ pre_suf
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr: finite_valid_trace_from XE is ((((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hproper: proper_fixed_equivocator_descriptors descriptors s
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' ((pre_pre ++ [pre_item]) ++ pre_suf) = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf)) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hs_free: constrained_state_prop FreeE s
Hpre: finite_valid_trace_from XE is ((pre_pre ++ [pre_item]) ++ pre_suf)
Htr_s0: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}])
Hlst_trX: constrained_state_prop Free lst_trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf)) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf))
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is ((pre_pre ++ [pre_item]) ++ pre_suf))
Hpre_free: finite_valid_trace FreeE is ((pre_pre ++ [pre_item]) ++ pre_suf)

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (((pre_pre ++ [pre_item]) ++ pre_suf) ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is ((pre_pre ++ [pre_item]) ++ pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Htr_s0: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) is (pre_pre ++ [pre_item]) ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre_pre ++ [pre_item])) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last is (pre_pre ++ [pre_item])) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0 ?tr
message, index, Ci: Type
H5: Elements index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
is: state XE
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
m: message
pre_item: transition_item
pre_pre, pre_suf: list transition_item
Hfuture: finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}])

finite_trace_last (destination pre_item) (pre_suf ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) = s0
by rewrite finite_trace_last_is_last.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: in_futures (preloaded_with_all_messages_vlsm FreeE) (destination pre_item) s0

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (preX, initial_descriptors) = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
_preX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (preX, initial_descriptors) = Some (_preX, _initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM _initial_descriptors is) _preX
H11: preX = _preX
H12: initial_descriptors = _initial_descriptors

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
_Htr_project: Some (preX, initial_descriptors) = Some (preX, initial_descriptors)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

from_sub_projection (equivocator_IM IM) (elements equivocating) pre_item
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX

is_Some match decide (projT1 (VLSM.l pre_item) ∈ elements equivocating) with | left i_in => Some (composite_label_sub_projection (equivocator_IM IM) (elements equivocating) (VLSM.l pre_item) i_in) | right _ => None end
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Heqv: ¬ composite_has_been_directly_observed IM lst_trX m
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

is_Some None
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

composite_has_been_directly_observed IM lst_trX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

has_been_directly_observed (free_composite_vlsm IM) lst_trX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

has_been_directly_observed (free_composite_vlsm IM) ?s1 m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating
in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) ?s1 lst_trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

has_been_directly_observed (free_composite_vlsm IM) ?s1 m
by eapply not_equivocating_sent_message_has_been_directly_observed_in_projection; only 3: rewrite <- elem_of_elements.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
lst_trX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free lst_trX
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) lst_trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
s:= finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf): state XE
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors s)
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE s
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (equivocators_state_project IM descriptors s)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
Heq: trX = preX ++ sufX
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

in_futures (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_constrained_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: state XE
pre: list (composite_transition_item (equivocator_IM IM))
l: label (composite_type (equivocator_IM IM))
s0: state (composite_type (equivocator_IM IM))
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: initial_state_prop is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project IM descriptors ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ([{| l := l; input := Some m; destination := s0; output := oom |}] ++ suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: field_selector output m pre_item
Hfixed: state_has_fixed_equivocation IM (elements equivocating) ( s0, oom).1
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
pre: list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s0: composite_state (equivocator_IM IM)
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: composite_initial_state_prop (equivocator_IM IM) is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project_folder IM {| l := l; input := Some m; destination := s0; output := oom |} (equivocators_trace_project IM descriptors suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: output pre_item = Some m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) s0
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM final_descriptors' (finite_trace_last is pre)) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
pre: list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s0: composite_state (equivocator_IM IM)
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: composite_initial_state_prop (equivocator_IM IM) is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project_folder IM {| l := l; input := Some m; destination := s0; output := oom |} (equivocators_trace_project IM descriptors suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: output pre_item = Some m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) s0
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from_to (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) (finite_trace_last (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
pre: list (composite_transition_item (equivocator_IM IM))
l: composite_label (equivocator_IM IM)
s0: composite_state (equivocator_IM IM)
oom: option message
suf: list (composite_transition_item (equivocator_IM IM))
m: message
Htr: finite_valid_trace_from XE is ((pre ++ [{| l := l; input := Some m; destination := s0; output := oom |}]) ++ suf)
His: composite_initial_state_prop (equivocator_IM IM) is
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hitem: from_sub_projection (equivocator_IM IM) (elements equivocating) {| l := l; input := Some m; destination := s0; output := oom |}
initial_descriptors: equivocator_descriptors IM
Hinitial_descriptors: proper_fixed_equivocator_descriptors initial_descriptors is
preX, sufX: list (composite_transition_item IM)
final_descriptors': equivocator_descriptors IM
Hsuf_project: equivocators_trace_project_folder IM {| l := l; input := Some m; destination := s0; output := oom |} (equivocators_trace_project IM descriptors suf) = Some (sufX, final_descriptors')
Htr_project: equivocators_trace_project IM final_descriptors' pre = Some (preX, initial_descriptors)
HtrXPre: finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (equivocators_state_project IM initial_descriptors is) preX ∧ finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
HtrXFree: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hfinal_state: equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)) = finite_trace_last (equivocators_state_project IM initial_descriptors is) (preX ++ sufX)
Hsuf: finite_valid_trace_from XE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hlst_trX: constrained_state_prop Free (equivocators_state_project IM descriptors (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)))
Htr_free: finite_constrained_trace FreeE is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf)
Hpre: finite_valid_trace_from XE is pre
Hs_free: constrained_state_prop FreeE (finite_trace_last is (pre ++ {| l := l; input := Some m; destination := s0; output := oom |} :: suf))
Hsuf_free: finite_constrained_trace_from FreeE (finite_trace_last is pre) ({| l := l; input := Some m; destination := s0; output := oom |} :: suf)
pre_item: transition_item
Hpre_item: pre_item ∈ pre
Hpre_m: output pre_item = Some m
Hfixed: state_has_fixed_equivocation IM (elements equivocating) s0
Hpre_free: finite_valid_trace FreeE is pre
Hpre_lst_free: valid_state_prop FreeE (finite_trace_last is pre)
Hfinal': proper_fixed_equivocator_descriptors final_descriptors' (finite_trace_last is pre)
Hfutures: state_has_fixed_equivocation IM (elements equivocating) (destination pre_item)
Hpre_final_state: equivocators_state_project IM final_descriptors' (finite_trace_last is pre) = finite_trace_last (equivocators_state_project IM initial_descriptors is) preX
Hl: projT1 (VLSM.l pre_item) ∉ elements equivocating

finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm IM)) (finite_trace_last (equivocators_state_project IM initial_descriptors is) preX) sufX
by apply HtrXPre. Qed.
Because any of its projections to the composition of original components contains all transitions from components not allowed to equivocate, all messages sent by non-equivocating components in the original trace will also be sent in any projection.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
Hitem: l1 l2 : list (composite_transition_item (equivocator_IM IM)), tr = l1 ++ item :: l2
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heq_tr: tr = pre ++ item :: suf
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is tr)
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heq_tr: tr = pre ++ [item] ++ suf
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors (pre ++ [item] ++ suf) = Some (trX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' pre = Some (preX, initial_descriptors) ∧ trX = preX ++ sufX
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Heq_trX: trX = preX ++ item_sufX
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

trace_has_message (field_selector output) m (preX ++ item_sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) preX ∨ Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: equivocators_trace_project IM final_descriptors ([item] ++ suf) = Some (item_sufX, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
Hpr_item_suf: (preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' [item] = Some (preX, eqv_pre) ∧ item_sufX = preX ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX, item_sufX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Heq_item_sufX: item_sufX = itemXs ++ sufX
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) item_sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) (itemXs ++ sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs ∨ Exists (field_selector output m) sufX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item] ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is ((pre ++ [item]) ++ suf)
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_from XE is (pre ++ [item]) ∧ finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hpre: finite_valid_trace_from XE is (pre ++ [item])
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hpre: finite_valid_trace_from XE is pre ∧ finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last is (pre ++ [item] ++ suf))
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (finite_trace_last is (pre ++ [item])) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (finite_trace_last is (pre ++ [item])) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

finite_constrained_trace_from FreeE (destination item) suf
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

finite_constrained_trace_from FreeE (destination item) suf
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_incl.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_fixed_equivocator_descriptors eqv_item (destination item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: i : index, i ∉ equivocating → eqv_item i = Existing 0

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)
Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item)))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: is_singleton_state (IM (projT1 (l item))) (destination item (projT1 (l item))) → s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

valid_state_prop (equivocators_fixed_equivocations_vlsm IM (elements equivocating)) (destination item)
by apply finite_valid_trace_last_pstate in Hitem.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [item]
Hsuf: finite_valid_trace_from XE (destination item) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination item) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [item] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output item = Some m
Hno_equiv_item: projT1 (l item) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination item) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination item)
Hproper_fixed_item: eqv_item (projT1 (l item)) = Existing 0
Hex: s : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (l item) (s, input item) → composite_transition (equivocator_IM IM) (l item) (s, input item) = (destination item, output item) → Hex : existing_equivocator_label (IM (projT1 (l item))) (projT2 (l item)), let lx := existT (projT1 (l item)) (existing_equivocator_label_extract (IM (projT1 (l item))) (projT2 (l item)) Hex) in equivocators_transition_item_project IM eqv_item item = Some (Some {| l := lx; input := input item; destination := equivocators_state_project IM eqv_item (destination item); output := output item |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: finite_valid_trace_from XE (finite_trace_last is pre) [{| l := l; input := iom; destination := s; output := oom |}]
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: input_valid_transition XE (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (finite_trace_last is pre, input {| l := l; input := iom; destination := s; output := oom |}) (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |})
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hitem: input_valid_transition XE l (finite_trace_last is pre, iom) ( s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), composite_valid (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) → composite_transition (equivocator_IM IM) (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) (s0, input {| l := l; input := iom; destination := s; output := oom |}) = (destination {| l := l; input := iom; destination := s; output := oom |}, output {| l := l; input := iom; destination := s; output := oom |}) → Hex : existing_equivocator_label (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})), let lx := existT (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) (existing_equivocator_label_extract (IM (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}))) (projT2 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) Hex) in equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := lx; input := input {| l := l; input := iom; destination := s; output := oom |}; destination := equivocators_state_project IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |}); output := output {| l := l; input := iom; destination := s; output := oom |} |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: s0 : composite_state (equivocator_IM IM), (let (i, li) := l in equivocator_valid (IM i) li (s0 i, iom)) → (let (i, li) := l in let (si', om') := equivocator_transition (IM i) li (s0 i, iom) in (state_update (equivocator_IM IM) s0 i si', om')) = (s, oom) → Hex : existing_equivocator_label (IM (projT1 l)) (projT2 l), equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: equivocators_trace_project IM eqv_item [{| l := l; input := iom; destination := s; output := oom |}] = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hpr_item: match equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hpr_item: Some ([{| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}], eqv_item) = Some (itemXs, eqv_pre)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) itemXs
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
l: label (composite_type (equivocator_IM IM))
iom: option message
s: state (composite_type (equivocator_IM IM))
oom: option message
pre, suf: list (composite_transition_item (equivocator_IM IM))
Hs: valid_state_prop XE (finite_trace_last is pre)
Hiom: option_valid_message_prop XE iom
Hv: valid l (finite_trace_last is pre, iom)
Hc: equivocators_fixed_equivocations_constraint IM (elements equivocating) l (finite_trace_last is pre, iom)
Ht: transition l (finite_trace_last is pre, iom) = (s, oom)
Hsuf: finite_valid_trace_from XE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
m: message
final_descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last (destination {| l := l; input := iom; destination := s; output := oom |}) suf)
initial_descriptors: equivocator_descriptors IM
preX: list (composite_transition_item IM)
eqv_pre: equivocator_descriptors IM
itemXs, sufX: list (composite_transition_item IM)
eqv_item: equivocator_descriptors IM
Hpr_suf: equivocators_trace_project IM final_descriptors suf = Some (sufX, eqv_item)
Hex': existing_equivocator_label (IM (projT1 l)) (projT2 l)
Hpr_pre: equivocators_trace_project IM eqv_pre pre = Some (preX, initial_descriptors)
Houtput: output {| l := l; input := iom; destination := s; output := oom |} = Some m
Hno_equiv_item: projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |}) ∉ equivocating
Hsufpre: finite_constrained_trace_from FreeE (destination {| l := l; input := iom; destination := s; output := oom |}) suf
Hproper_item: proper_equivocator_descriptors IM eqv_item (destination {| l := l; input := iom; destination := s; output := oom |})
Hproper_fixed_item: eqv_item (projT1 (VLSM.l {| l := l; input := iom; destination := s; output := oom |})) = Existing 0
Hex: equivocators_transition_item_project IM eqv_item {| l := l; input := iom; destination := s; output := oom |} = Some (Some {| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_item s; output := oom |}, eqv_item)

Exists (field_selector output m) [{| l := existT (projT1 l) (existing_equivocator_label_extract (IM (projT1 l)) (projT2 l) Hex'); input := iom; destination := equivocators_state_project IM eqv_pre s; output := oom |}]
by constructor. Qed.
As a consequence of the equivocator_vlsm_trace_project_reflect_non_equivocating lemma, if a message emmitted by a trace cannot be directly observed in a projection of the trace's final state, then it must be that it was emitted by one of the components allowed to equivocate.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX

item : composite_transition_item (equivocator_IM IM), item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m

projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

projT1 (l item) ∈ equivocating
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
Hno: ¬ composite_has_been_directly_observed IM sX m
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

composite_has_been_directly_observed IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

composite_has_been_directly_observed IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

composite_has_been_sent IM sX m ∨ composite_has_been_received IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

composite_has_been_sent IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
composite_has_been_sent IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

VLSM_incl_part (free_composite_vlsm_machine IM) (preloaded_vlsm_machine Free (λ _ : message, True))
by apply vlsm_incl_preloaded_with_all_messages_vlsm.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX

composite_has_been_sent IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
s:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors s
sX:= equivocators_state_project IM descriptors s: state (free_composite_vlsm IM)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM sX m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

composite_has_been_sent IM (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_all_preloaded_traces (free_composite_vlsm IM) (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_constrained_trace Free (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces (free_composite_vlsm IM) (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

selected_message_exists_in_some_preloaded_traces (free_composite_vlsm IM) (field_selector output) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
HtrX: finite_valid_trace (free_composite_vlsm IM) (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating
HtrX_free: finite_valid_trace (preloaded_with_all_messages_vlsm Free) (equivocators_state_project IM initial_descriptors is) trX
Hfree_lst: valid_state_prop (preloaded_with_all_messages_vlsm Free) (finite_trace_last (equivocators_state_project IM initial_descriptors is) trX)

trace_has_message (field_selector output) m trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace XE is tr
descriptors: equivocator_descriptors IM
Hproper: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
trX: list (composite_transition_item IM)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM descriptors tr = Some (trX, initial_descriptors)
Hlast_state: equivocators_state_project IM descriptors (finite_trace_last is tr) = finite_trace_last (equivocators_state_project IM initial_descriptors is) trX
item: composite_transition_item (equivocator_IM IM)
Hitem: item ∈ tr
Houtput: output item = Some m
n: projT1 (l item) ∉ elements equivocating

trace_has_message (field_selector output) m trX
by eapply equivocator_vlsm_trace_project_reflect_non_equivocating; [.. | contradict n; apply elem_of_elements]. Qed.
The next two lemmas are rather technical, but their basic meaning is that if we take the composition of a subset of equivocators, it doesn't matter the way we do it (either first obtain the indexed subset of components and then transform that into equivocators and take their composition, or we first start with the indexed full set of equivocators and then select a subset of them and take their composition).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1) (composite_no_equivocation_vlsm_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1) (composite_no_equivocation_vlsm_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

strong_incl_initial_state_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
weak_incl_initial_message_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
weak_incl_valid_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
weak_incl_transition_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

strong_incl_initial_state_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
by intro; intros.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

weak_incl_initial_message_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hv: input_valid {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HmX: initial_message_prop m

valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hv: input_valid {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HmX: initial_message_prop m

composite_initial_message_prop (equivocator_IM (sub_IM IM (elements equivocating))) m ∨ seed2 m
by destruct HmX; auto.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

weak_incl_valid_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1 l ( s, om)

valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s) → option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} om → valid (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1 l ( s, om)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} om

no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed1 l ( s, om)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} om

no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed1 l ( s, om)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} om

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed1 l ( s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed1 l ( s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed1 l ( s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating)) ( s, Some m).1 m
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating)) ( s, Some m).1 m
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_has_been_sent (equivocator_IM (sub_IM IM (elements equivocating))) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
Hibs: has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi) m
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

composite_has_been_sent (equivocator_IM (sub_IM IM (elements equivocating))) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
Hibs: has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi) m
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

has_been_sent (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi) m → has_been_sent (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

constrained_state_prop (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

constrained_state_prop (equivocator_IM (sub_IM IM (elements equivocating)) subi) (s subi)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

constrained_state_prop (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |} s → constrained_state_prop (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1 |}
m: message
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (id s)
HomY: option_valid_message_prop {| vlsm_type := composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2 |} (Some m)

VLSM_incl_part (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) (λ _ : message, True))
by apply constrained_preloaded_vlsm_incl_preloaded_with_all_messages.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

weak_incl_transition_preservation (preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed1)) seed1) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed2)) seed2)
by destruct 1. Qed.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1) (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m

VLSM_incl (composite_no_equivocation_vlsm_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1) (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message

input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, Some m) → valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s) → initial_message_prop m → valid_message_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
om: option message
input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, om) → valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s) → option_valid_message_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} om → valid (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message

input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, Some m) → valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s) → initial_message_prop m → valid_message_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hv: input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s)
HmX: initial_message_prop m

valid_message_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hv: input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, Some m)
HsY: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s)
HmX: initial_message_prop m

composite_initial_message_prop (sub_IM (equivocator_IM IM) (elements equivocating)) m ∨ seed2 m
by destruct HmX; auto.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
om: option message

input_valid {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} l (s, om) → valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} (id s) → option_valid_message_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (sub_IM (equivocator_IM IM) (elements equivocating)) (no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2)) seed2 |} om → valid (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, om)

valid (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, om)

no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
om: option message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, om)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, om)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed2 (id l) (id s, om)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed2 (id l) (id s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_no_equivocations_except_from (equivocator_IM (sub_IM IM (elements equivocating))) seed1 l (s, Some m)

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_has_been_sent (equivocator_IM (sub_IM IM (elements equivocating))) (s, Some m).1 m

composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) (elements equivocating)) seed2 l (s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
Hc: composite_has_been_sent (equivocator_IM (sub_IM IM (elements equivocating))) (s, Some m).1 m

composite_has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
Hibs: has_been_sent (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi) m

composite_has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating)) (s, Some m).1 m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)
Hibs: has_been_sent (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi) m

has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

has_been_sent (equivocator_IM (sub_IM IM (elements equivocating)) subi) ((s, Some m).1 subi) m → has_been_sent (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

constrained_state_prop (sub_IM (equivocator_IM IM) (elements equivocating) subi) ((s, Some m).1 subi)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

constrained_state_prop (sub_IM (equivocator_IM IM) (elements equivocating) subi) (s subi)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hs: valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

constrained_state_prop (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

valid_state_prop {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |} s → constrained_state_prop (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) s
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
seed1, seed2: message → Prop
Hseed12: m : message, seed1 m → seed2 m
l: label {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
s: state {| vlsm_type := composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1); vlsm_machine := preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1 |}
m: message
Hv: valid l (s, Some m)
subi: sub_index (elements equivocating)

VLSM_incl_part (preloaded_vlsm_machine (composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating))) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM (sub_IM IM (elements equivocating))) (free_constraint (equivocator_IM (sub_IM IM (elements equivocating)))) seed1)) seed1) (preloaded_vlsm_machine (free_composite_vlsm (equivocator_IM (sub_IM IM (elements equivocating)))) (λ _ : message, True))
by apply constrained_preloaded_vlsm_incl_preloaded_with_all_messages. Qed.
The intermediary results above allow us to prove that the fixed_equivocation_constraint has the constraint_has_been_sent_property.
The core of this result is proving that given a valid_state s of the composition of equivocators with no message equivocation and fixed state equivocation, a message which has_been_sent for that state but not has_been_directly_observed for a projection of that state sx, can nevertheless be generated by the composition of the components allowed to equivocate, preloaded with the messages directly observed in the state sx.
To prove that, we consider a trace witness for the message having been sent, we use projection_has_not_been_directly_observed_is_equivocating to derive that it must have been sent by one of the machines allowed to equivocate, from this we derive that it can be sent by the restriction of the composition of equivocators to just the equivocating components, preloaded with the messages directly observed in the projection, then we use the seeded_equivocators_valid_trace_project result to reach our conclusion.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message

constraint_has_been_sent_prop (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message

constraint_has_been_sent_prop (fixed_equivocation_constraint IM equivocating)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message

s : composite_state (equivocator_IM IM), valid_state_prop XE s → descriptors : equivocator_descriptors IM, proper_fixed_equivocator_descriptors descriptors s → m : message, has_been_sent FreeE s m → l : composite_label IM, fixed_equivocation_constraint IM equivocating l (equivocators_state_project IM descriptors s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM

fixed_equivocation_constraint IM equivocating l (equivocators_state_project IM descriptors s, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s

fixed_equivocation_constraint IM equivocating l (sX, Some m)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
l: composite_label IM
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: valid_state_prop XE s
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* Phase I: exhibiting a [valid_trace] ending in tr s and sending m *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
Hs: (is : state XE) (tr : list transition_item), finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

finite_constrained_trace_init_to FreeE is s tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

finite_constrained_trace_init_to FreeE is s tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_incl.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: has_been_sent FreeE s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hplst: constrained_state_prop FreeE s

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: selected_message_exists_in_all_preloaded_traces FreeE (field_selector output) s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hplst: constrained_state_prop FreeE s

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: selected_message_exists_in_all_preloaded_traces FreeE (field_selector output) s m
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* Phase II (a): The restriction of tr to the equivocators allowed to state-equivocate is valid for the corresponding composition preloaded with the messages directly observed in the projection sX of s. *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: (s : composite_state (equivocator_IM IM)) (tr : list (composite_transition_item (equivocator_IM IM))), trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) s tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) s) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM sX) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s)) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s))) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s)) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
Hm: trace_has_message (field_selector output) m tr
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s)) tr → finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s))) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

trace_sub_item_input_is_seeded_or_sub_previously_sent (equivocator_IM IM) (elements equivocating) (composite_has_been_directly_observed IM (equivocators_state_project IM descriptors (finite_trace_last is tr))) tr
apply (equivocators_trace_sub_item_input_is_seeded_or_sub_previously_sent _ _ (valid_trace_forget_last Htr) descriptors Hdescriptors).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: finite_valid_trace (composite_vlsm (equivocator_IM IM) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) is tr → finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM sX m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
HeqsX: sX = equivocators_state_project IM descriptors s
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_constrained_trace_init_to FreeE is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* Phase III (a): Obtain a projection trXm of tr outputing m using a final_descriptor_m *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
Hm: trace_has_message (field_selector output) m tr
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
Hex: Exists (field_selector output m) trXm
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* Identify the item outputing m in trXm an its corresponding item in tr. *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
Hex: x : transition_item, x ∈ trXm ∧ field_selector output m x
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
Hin: output_itemX ∈ trXm
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
Hin: l1 l2 : list transition_item, trXm = l1 ++ output_itemX :: l2
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ output_itemX :: sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
Hpr_item: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
Hpr_item: equivocators_trace_project IM final_descriptors_m tr = Some (preX ++ [output_itemX] ++ sufX, initial_descriptors_m)

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
Hpr_item: (pre suf : list (composite_transition_item (equivocator_IM IM))) (item : composite_transition_item (equivocator_IM IM)) (item_descriptors pre_descriptors : equivocator_descriptors IM), equivocators_trace_project IM final_descriptors_m suf = Some (sufX, item_descriptors) ∧ equivocators_transition_item_project IM item_descriptors item = Some (Some output_itemX, pre_descriptors) ∧ equivocators_trace_project IM pre_descriptors pre = Some (preX, initial_descriptors_m) ∧ tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
Hpr_item: equivocators_transition_item_project IM item_descriptors item = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
Hpr_item: match equivocator_vlsm_transition_item_project (IM (projT1 (l item))) (composite_transition_item_projection (equivocator_IM IM) item) (item_descriptors (projT1 (l item))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | None => None end = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
o: option transition_item
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: match o with | Some item' => Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') | None => Some (None, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') end = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
item': transition_item
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
output_itemX: transition_item
preX, sufX: list transition_item
Heq_trXm: trXm = preX ++ [output_itemX] ++ sufX
Houtput_select: field_selector output m output_itemX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
item: composite_transition_item (equivocator_IM IM)
item_descriptors, pre_descriptors: equivocator_descriptors IM
item': transition_item
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some output_itemX, pre_descriptors)
Heqtr: tr = pre ++ [item] ++ suf
H11: {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} = output_itemX
H12: equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv' = pre_descriptors

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: field_selector output m {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
deqv': MachineDescriptor (IM (projT1 (l item)))
Hpr_item: Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv') = Some (Some {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}, equivocator_descriptors_update IM item_descriptors (projT1 (l item)) deqv')
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: field_selector output m {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors s
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors s) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* show that that item must be specifying a transition for an equivocating component *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
Hdescriptors: proper_fixed_equivocator_descriptors descriptors (finite_trace_last is tr)
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
n: ¬ composite_has_been_directly_observed IM (equivocators_state_project IM descriptors (finite_trace_last is tr)) m
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: item ∈ tr → output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: output item = Some m → projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating

can_emit (equivocators_composition_for_directly_observed IM equivocating sX) m
(* Phase III (b): Consider a projection trX' obtained using the final_descriptor_m as above, but first restricting the components to just the equivocators allowed to equivocate. We will show that we can use [seeded_equivocators_valid_trace_project] and leverage the result from Phase II (a) to derive that the resulting projection is valid. *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), let isX := equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) in let final_stateX := finite_trace_last isX trX in proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = final_stateX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) isX trX

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX

proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX

proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: let lstx := finite_trace_last is tr in let lstj := finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) in lstj = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) lstx

proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr)

proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr)

proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr)
e: sub_index (elements equivocating)

proper_descriptor (IM (`e)) (final_descriptors_m (`e)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr) e)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr)
x: index
i: bool_decide (sub_index_prop (elements equivocating) x)

proper_descriptor (IM (`(x ↾ i))) (final_descriptors_m (`(x ↾ i))) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr) (x ↾ i))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: proper_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) → (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX
Heq_lst: finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr)
x: index
i: bool_decide (sub_index_prop (elements equivocating) x)

proper_descriptor (IM (`(x ↾ i))) (final_descriptors_m (`(x ↾ i))) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) (finite_trace_last is tr) (x ↾ i))
by apply Hfinal_descriptors_m.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
Hsub_project: (trX : list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))) (initial_descriptors : equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))), proper_equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) ∧ equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX, initial_descriptors) ∧ equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_last (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)) = finite_trace_last (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX ∧ finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
Htr'pre: finite_valid_trace_init_to (preloaded_with_all_messages_vlsm FreeE) is s tr
Hproject: finite_valid_trace (composite_no_equivocation_vlsm_with_preloaded (sub_IM (equivocator_IM IM) (elements equivocating)) (free_constraint (sub_IM (equivocator_IM IM) (elements equivocating))) (composite_has_been_directly_observed IM sX)) (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
Hpr_tr': equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
Hpr_tr': equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
(* State that by restricting trXm to the subset of equivocating components we obtain the same trX' trace. *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
Hproject_trXm: equivocators_trace_project IM final_descriptors_m tr = Some (trXm, initial_descriptors_m)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
Hpr_tr': equivocators_trace_project (λ i : sub_index (elements equivocating), IM (`i)) (λ i : sub_index (elements equivocating), final_descriptors_m (`i)) (finite_trace_sub_projection (equivocator_IM IM) (elements equivocating) tr) = Some (trX', initial_descriptors')
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'
HeqtrX: finite_trace_sub_projection IM (elements equivocating) trXm = trX'

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'
HeqtrX: finite_trace_sub_projection IM (elements equivocating) trXm = trX'

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
(* reduce the goal to showing that the message appears in trX'. *)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'
HeqtrX: finite_trace_sub_projection IM (elements equivocating) trXm = trX'
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))
HeqisX: isX = equivocators_state_project (sub_IM IM (elements equivocating)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'
HeqtrX: finite_trace_sub_projection IM (elements equivocating) trXm = trX'
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

can_emit (preloaded_vlsm (free_equivocating_vlsm_composition IM equivocating) (composite_has_been_directly_observed IM sX)) m
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
tr: list transition_item
Htr: finite_valid_trace_init_to XE is s tr
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
trXm: list (composite_transition_item IM)
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is tr)
preX, sufX: list transition_item
item: composite_transition_item (equivocator_IM IM)
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
Heq_trXm: trXm = preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX
sX: state (free_composite_vlsm IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Heqtr: tr = pre ++ [item] ++ suf
Hitem_equivocating: projT1 (l item) ∈ equivocating
trX': list (composite_transition_item (λ i : sub_index (elements equivocating), IM (`i)))
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) trX'
HeqtrX: finite_trace_sub_projection IM (elements equivocating) trXm = trX'
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

trace_has_message (field_selector output) m trX'
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

trace_has_message (field_selector output) m (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

trace_has_message (field_selector output) m (finite_trace_sub_projection IM (elements equivocating) preX ++ finite_trace_sub_projection IM (elements equivocating) [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ finite_trace_sub_projection IM (elements equivocating) sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) preX ++ finite_trace_sub_projection IM (elements equivocating) [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ finite_trace_sub_projection IM (elements equivocating) sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) preX) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}]) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}]) ∨ Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) sufX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) (finite_trace_sub_projection IM (elements equivocating) [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}])
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) match pre_VLSM_projection_transition_item_project (composite_type IM) (composite_type (sub_IM IM (elements equivocating))) (composite_label_sub_projection_option IM (elements equivocating)) (composite_state_sub_projection IM (elements equivocating)) {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} with | Some y => [y] | None => [] end
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) match match match decide (projT1 (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) ∈ elements equivocating) with | left i_in => Some (composite_label_sub_projection IM (elements equivocating) (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) i_in) | right _ => None end with | Some lY => Some {| l := lY; input := input {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}; destination := composite_state_sub_projection IM (elements equivocating) (destination {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}); output := output {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} |} | None => None end with | Some y => [y] | None => [] end
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
s: composite_state (equivocator_IM IM)
is: state XE
item: composite_transition_item (equivocator_IM IM)
pre, suf: list (composite_transition_item (equivocator_IM IM))
Htr: finite_valid_trace_init_to XE is s (pre ++ [item] ++ suf)
descriptors: equivocator_descriptors IM
m: message
final_descriptors_m, initial_descriptors_m: equivocator_descriptors IM
Hfinal_descriptors_m: not_equivocating_equivocator_descriptors IM final_descriptors_m (finite_trace_last is (pre ++ [item] ++ suf))
preX, sufX: list transition_item
item_descriptors: equivocator_descriptors IM
item': transition_item
Houtput_select: output item = Some m
sX: state (free_composite_vlsm IM)
Hitem_equivocating: projT1 (l item) ∈ elements equivocating
initial_descriptors': equivocator_descriptors (λ i : sub_index (elements equivocating), IM (`i))
HtrX: finite_valid_trace (preloaded_vlsm (free_composite_vlsm (sub_IM IM (elements equivocating))) (composite_has_been_directly_observed IM sX)) (equivocators_state_project (λ i : sub_index (elements equivocating), IM (`i)) initial_descriptors' (composite_state_sub_projection (equivocator_IM IM) (elements equivocating) is)) (finite_trace_sub_projection IM (elements equivocating) (preX ++ [{| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}] ++ sufX))
isX: state (free_composite_vlsm (sub_IM IM (elements equivocating)))

Exists (field_selector output m) match match match decide (projT1 (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) ∈ elements equivocating) with | left i_in => Some (composite_label_sub_projection IM (elements equivocating) (l {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}) i_in) | right _ => None end with | Some lY => Some {| l := lY; input := input {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}; destination := composite_state_sub_projection IM (elements equivocating) (destination {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |}); output := output {| l := existT (projT1 (l item)) (l item'); input := input item; destination := equivocators_state_project IM item_descriptors (destination item); output := output item |} |} | None => None end with | Some y => [y] | None => [] end
by case_decide; [constructor |]. Qed.
Main result of this section, stating that traces which are valid for the equivocator-based definition of fixed equivocation project to traces which are valid for the simple-components definition of fixed equivocation.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

(trX : list (composite_transition_item IM)) (initial_descriptors : equivocator_descriptors IM), let isX := equivocators_state_project IM initial_descriptors is in let final_stateX := finite_trace_last isX trX in proper_fixed_equivocator_descriptors initial_descriptors is ∧ equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors) ∧ equivocators_state_project IM final_descriptors final_state = final_stateX ∧ finite_valid_trace X isX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
is: composite_state (equivocator_IM IM)
tr: list (composite_transition_item (equivocator_IM IM))
final_state:= finite_trace_last is tr: state (composite_type (equivocator_IM IM))
Hproper: proper_fixed_equivocator_descriptors final_descriptors final_state
Htr: finite_valid_trace XE is tr

constraint_has_been_sent_prop (fixed_equivocation_constraint IM equivocating)
by apply fixed_equivocation_constraint_has_constraint_has_been_sent_prop. Qed.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

VLSM_partial_projection XE X (equivocators_partial_trace_project IM final_descriptors)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

VLSM_partial_projection XE X (equivocators_partial_trace_project IM final_descriptors)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

(sX : state XE) (trX : list transition_item) (sY : state X) (trY : list transition_item), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → (s'X : state XE) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from XE s'X (preX ++ trX) → (s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sY
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
(sX : state XE) (trX : list transition_item) (sY : state X) (trY : list transition_item), equivocators_partial_trace_project IM final_descriptors ( sX, trX) = Some (sY, trY) → finite_valid_trace XE sX trX → finite_valid_trace X sY trY
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

(sX : state XE) (trX : list transition_item) (sY : state X) (trY : list transition_item), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → (s'X : state XE) (preX : list transition_item), finite_trace_last s'X preX = sX → finite_valid_trace_from XE s'X (preX ++ trX) → (s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s'X, preX ++ trX) = Some (s'Y, preY ++ trY) ∧ finite_trace_last s'Y preY = sY
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

(s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

finite_constrained_trace_from FreeE s_pre (pre ++ tr)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_constrained_trace_from FreeE s_pre (pre ++ tr)
(s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors ( s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)

finite_constrained_trace_from FreeE s_pre (pre ++ tr)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
Hpre_tr: finite_valid_trace_from XE s_pre (pre ++ tr)
HPreFree_pre_tr: finite_constrained_trace_from FreeE s_pre (pre ++ tr)

(s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
s_pre: state XE
pre: list transition_item
Hs_lst: finite_trace_last s_pre pre = s
HPreFree_pre_tr: finite_constrained_trace_from FreeE s_pre (pre ++ tr)

(s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

(s : state XE) (tr : list transition_item) (sX : state X) (trX : list transition_item), equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX) → (s_pre : state XE) (pre : list transition_item), finite_trace_last s_pre pre = s → finite_constrained_trace_from FreeE s_pre (pre ++ tr) → (s'Y : state X) (preY : list transition_item), equivocators_partial_trace_project IM final_descriptors (s_pre, pre ++ tr) = Some (s'Y, preY ++ trX) ∧ finite_trace_last s'Y preY = sX
apply equivocators_partial_trace_project_extends_left.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM

(sX : state XE) (trX : list transition_item) (sY : state X) (trY : list transition_item), equivocators_partial_trace_project IM final_descriptors (sX, trX) = Some (sY, trY) → finite_valid_trace XE sX trX → finite_valid_trace X sY trY
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: equivocators_trace_project IM final_descriptors tr = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX

finite_valid_trace X sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
final_descriptors: equivocator_descriptors IM
s: state XE
tr: list transition_item
sX: state X
trX: list transition_item
Hpr_tr: equivocators_partial_trace_project IM final_descriptors (s, tr) = Some (sX, trX)
Htr: finite_valid_trace XE s tr
Hnot_equiv: not_equivocating_equivocator_descriptors IM final_descriptors (finite_trace_last s tr)
initial_descriptors: equivocator_descriptors IM
Htr_project: equivocators_trace_project IM final_descriptors tr = Some (trX, initial_descriptors)
Hs_project: equivocators_state_project IM initial_descriptors s = sX
Hlst: valid_state_prop XE (finite_trace_last s tr)
Hproper: proper_fixed_equivocator_descriptors final_descriptors (finite_trace_last s tr)
_trX: list (composite_transition_item IM)
_initial_descriptors: equivocator_descriptors IM
_Htr_project: Some (trX, initial_descriptors) = Some (_trX, _initial_descriptors)
HtrX: finite_valid_trace X (equivocators_state_project IM _initial_descriptors s) _trX

finite_valid_trace X sX trX
by inversion _Htr_project; subst. Qed.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message

VLSM_projection XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message

VLSM_projection XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace_from XE sX trX

equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace_from XE sX trX

equivocators_total_state_project IM (finite_trace_last sX trX) = finite_trace_last (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace_from XE sX trX

finite_valid_trace_from (preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM))) sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace_from XE sX trX

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (λ _ : message, True))
by apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX

finite_constrained_trace FreeE sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX

finite_constrained_trace FreeE sX trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX

VLSM_incl_part (constrained_vlsm_machine (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (elements equivocating))) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply equivocators_fixed_equivocations_vlsm_incl_PreFree.
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) ( sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) ( sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) ( sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_partial_trace_project IM (zero_descriptor IM) (sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) ( sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

(if decide (not_equivocating_equivocator_descriptors IM (zero_descriptor IM) (finite_trace_last sX trX)) then match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project IM initial_descriptors sX, trX) | None => None end else None) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: equivocators_partial_trace_project IM (zero_descriptor IM) ( sX, trX) = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX) → finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

match equivocators_trace_project IM (zero_descriptor IM) trX with | Some (trX, initial_descriptors) => Some (equivocators_state_project IM initial_descriptors sX, trX) | None => None end = Some (equivocators_state_project IM (zero_descriptor IM) sX, equivocators_total_trace_project IM trX)
by rewrite (equivocators_total_trace_project_characterization IM (proj1 Hpre_tr)).
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace XE sX trX
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

finite_valid_trace X (equivocators_total_state_project IM sX) (pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX)
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX

finite_valid_trace X (equivocators_total_state_project IM sX) tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
tr: list transition_item
Heqtr: tr = pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX

equivocators_total_trace_project IM trX = tr
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

equivocators_total_trace_project IM trX = pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX
message: Type
EqDecision0: EqDecision message
index, Ci: Type
H: ElemOf index Ci
H0: Empty Ci
H1: Singleton index Ci
H2: Union Ci
H3: Intersection Ci
H4: Difference Ci
H5: Elements index Ci
EqDecision1: EqDecision index
H6: FinSet index Ci
EqDecision2: EqDecision index
H7: finite.Finite index
IM: index → VLSM message
H8: i : index, HasBeenSentCapability (IM i)
H9: i : index, HasBeenReceivedCapability (IM i)
equivocating: Ci
XE:= equivocators_fixed_equivocations_vlsm IM (elements equivocating): VLSM message
X:= fixed_equivocation_vlsm_composition IM equivocating: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
Hdec_init: i : index, decidable_initial_messages_prop (IM i)
Free:= free_composite_vlsm IM: VLSM message
sX: state XE
trX: list transition_item
HtrX: finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)
Hpre_tr: finite_constrained_trace FreeE sX trX
Hsim: finite_valid_trace XE sX trX → finite_valid_trace X (equivocators_state_project IM (zero_descriptor IM) sX) (equivocators_total_trace_project IM trX)

pre_VLSM_projection_finite_trace_project XE X (equivocators_total_label_project IM) (equivocators_total_state_project IM) trX = equivocators_total_trace_project IM trX
by apply (equivocators_total_VLSM_projection_finite_trace_project IM (proj1 Hpre_tr)). Qed. End sec_from_equivocators_to_components. Section sec_all_equivocating.

Fixed Equivocation for all Equivocators

In this section we show that if the set of components allowed to equivocate in the fixed set equivocation is the entire set of components, then the composition under the fixed-set equivocation constraint is the same as the composition with only the no-message-equivocation constraint.
Context
  {message : Type}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  (XE : VLSM message := equivocators_fixed_equivocations_vlsm IM (enum index))
  (NE : VLSM message := equivocators_no_equivocations_vlsm IM)
  .

message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_no_equivocations_constraint IM) (equivocators_fixed_equivocations_constraint IM (enum index))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_no_equivocations_constraint IM) (equivocators_fixed_equivocations_constraint IM (enum index))
by split; [| intro; intros; apply elem_of_enum]. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (enum index)) (equivocators_no_equivocations_constraint IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (enum index)) (equivocators_no_equivocations_constraint IM)
by intros l [s om] Hv; apply Hv. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

VLSM_eq XE NE
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

VLSM_eq XE NE
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := XE; vlsm_machine := XE |} {| vlsm_type := XE; vlsm_machine := NE |}
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message
VLSM_incl {| vlsm_type := XE; vlsm_machine := NE |} {| vlsm_type := XE; vlsm_machine := XE |}
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := XE; vlsm_machine := XE |} {| vlsm_type := XE; vlsm_machine := NE |}
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

input_valid_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (enum index)) (equivocators_no_equivocations_constraint IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

preloaded_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (enum index)) (equivocators_no_equivocations_constraint IM)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_fixed_equivocations_constraint IM (enum index)) (equivocators_no_equivocations_constraint IM)
by apply strong_constraint_subsumption_all_fixed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

VLSM_incl {| vlsm_type := XE; vlsm_machine := NE |} {| vlsm_type := XE; vlsm_machine := XE |}
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

input_valid_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_no_equivocations_constraint IM) (equivocators_fixed_equivocations_constraint IM (enum index))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

preloaded_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_no_equivocations_constraint IM) (equivocators_fixed_equivocations_constraint IM (enum index))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
XE:= equivocators_fixed_equivocations_vlsm IM (enum index): VLSM message
NE:= equivocators_no_equivocations_vlsm IM: VLSM message

strong_constraint_subsumption (free_composite_vlsm (equivocator_IM IM)) (equivocators_no_equivocations_constraint IM) (equivocators_fixed_equivocations_constraint IM (enum index))
by apply strong_constraint_subsumption_fixed_all. Qed. End sec_all_equivocating.