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.
[Loading ML file extraction_plugin.cmxs (using legacy method) ... done]
From VLSM.Lib Require Import Preamble ListExtras StdppExtras. From VLSM.Core Require Import VLSM VLSMProjections Composition SubProjectionTraces. From VLSM.Core Require Import Equivocation Equivocation.NoEquivocation. From VLSM.Core Require Import Equivocators.Equivocators Equivocators.EquivocatorsProjections.
[Loading ML file equations_plugin.cmxs (using legacy method) ... done]
From VLSM.Core Require Import Equivocators.EquivocatorsComposition. From VLSM.Core Require Import Equivocators.EquivocatorsCompositionProjections Plans.

Core: VLSM Equivocator Full Replay Traces

In this module, we show that given a trace of equivocators, one can "replay" that at the end of an existing trace, by first equivocating for each initial state and then performing each transition, but appropriately "shifted".
To make the results more general, we take the trace to be replayed to be produced by a restricted set of equivocators preloaded with messages satisfying some conditions.
Section sec_all_equivocating.

Context
  {message : Type}
  `{finite.Finite index}
  (IM : index -> VLSM message)
  `{forall i : index, HasBeenSentCapability (IM i)}
  `{forall i : index, HasBeenReceivedCapability (IM i)}
  (seed : message -> Prop)
  (equivocating : list index)
  (Free := free_composite_vlsm IM)
  (FreeE := free_composite_vlsm (equivocator_IM IM))
  (FreeSubE := free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating))
  (SeededXE : VLSM message := seeded_equivocators_no_equivocation_vlsm IM equivocating seed)
.

message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m

VLSM_embedding SeededXE (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_label (equivocator_IM IM) equivocating) (lift_sub_state (equivocator_IM IM) equivocating)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m

VLSM_embedding SeededXE (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_label (equivocator_IM IM) equivocating) (lift_sub_state (equivocator_IM IM) equivocating)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
om: option message

input_valid SeededXE l (s, om) → valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s) → option_valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) om → valid (lift_sub_label (equivocator_IM IM) equivocating l) (lift_sub_state (equivocator_IM IM) equivocating s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
om: option message
s': state SeededXE
om': option message
input_valid_transition SeededXE l (s, om) (s', om') → transition (lift_sub_label (equivocator_IM IM) equivocating l) (lift_sub_state (equivocator_IM IM) equivocating s, om) = (lift_sub_state (equivocator_IM IM) equivocating s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
s: state SeededXE
initial_state_prop s → initial_state_prop (lift_sub_state (equivocator_IM IM) equivocating s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
input_valid SeededXE l (s, Some m) → valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s) → initial_message_prop m → valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
om: option message

input_valid SeededXE l (s, om) → valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s) → option_valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) om → valid (lift_sub_label (equivocator_IM IM) equivocating l) (lift_sub_state (equivocator_IM IM) equivocating s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
HomY: option_valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) om

valid (lift_sub_label (equivocator_IM IM) equivocating l) (lift_sub_state (equivocator_IM IM) equivocating s, om)
by rapply @lift_sub_valid; apply Hv.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
om: option message
s': state SeededXE
om': option message

input_valid_transition SeededXE l (s, om) (s', om') → transition (lift_sub_label (equivocator_IM IM) equivocating l) (lift_sub_state (equivocator_IM IM) equivocating s, om) = (lift_sub_state (equivocator_IM IM) equivocating s', om')
by intros [_ Ht]; revert Ht; apply lift_sub_transition.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
s: state SeededXE

initial_state_prop s → initial_state_prop (lift_sub_state (equivocator_IM IM) equivocating s)
by intros; apply (lift_sub_state_initial (equivocator_IM IM)).
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message

input_valid SeededXE l (s, Some m) → valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s) → initial_message_prop m → valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
Hinit: initial_message_prop m

valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
Hseeded: seed m
valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
Hinit: initial_message_prop m

valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
Hinit: initial_message_prop m

initial_message_prop m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
i: sub_index equivocating
Him: mi : initial_message (sub_IM (equivocator_IM IM) equivocating i), ` mi = m

initial_message_prop m
by exists (proj1_sig i).
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
Hseed: m : message, seed m → valid_message_prop FreeE m
l: label SeededXE
s: state SeededXE
m: message
Hv: input_valid SeededXE l (s, Some m)
HsY: valid_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (lift_sub_state (equivocator_IM IM) equivocating s)
Hseeded: seed m

valid_message_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) m
by eapply VLSM_incl_valid_message; [apply free_composite_vlsm_spec | do 2 red | apply Hseed]. Qed.
Given a base_state to replay on, the replay label corresponding to a given transition label is obtained as the equivocator_state_append_label.
Definition lift_equivocators_sub_label_to
  (base_s : composite_state (equivocator_IM IM))
  (l : composite_label (sub_IM (equivocator_IM IM) equivocating))
  : composite_label (equivocator_IM IM)
  :=
  let (sub_i, li) := l in
  let i := proj1_sig sub_i in
  existT i (equivocator_state_append_label (IM i) (base_s i) li).
Given a base_state to replay on, the replay state corresponding to a destination state in a transition by appending its components to the base state using equivocator_state_append.
Definition lift_equivocators_sub_state_to
  (base_s : composite_state (equivocator_IM IM))
  (s : composite_state (sub_IM (equivocator_IM IM) equivocating))
  : composite_state (equivocator_IM IM)
  := fun i =>
    match @decide  (sub_index_prop equivocating i) (sub_index_prop_dec equivocating i) with
    | left e =>  equivocator_state_append (base_s i) (s (dexist i e))
    | _ => base_s i
    end.

message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i

lift_equivocators_sub_state_to base_s s i = equivocator_state_append (base_s i) (s (dexist i Hi))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i

lift_equivocators_sub_state_to base_s s i = equivocator_state_append (base_s i) (s (dexist i Hi))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i

match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (base_s i) (s (dexist i e)) | in_right => base_s i end = equivocator_state_append (base_s i) (s (dexist i Hi))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi, H_i: sub_index_prop equivocating i

equivocator_state_append (base_s i) (s (dexist i H_i)) = equivocator_state_append (base_s i) (s (dexist i Hi))
by rewrite (sub_IM_state_pi s H_i Hi). Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)

i : index, equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)

i : index, equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index

equivocator_state_n (base_s i) ≤ equivocator_state_n (lift_equivocators_sub_state_to base_s s i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index

equivocator_state_n (base_s i) ≤ equivocator_state_n match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (base_s i) (s (dexist i e)) | in_right => base_s i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
base_s: composite_state (equivocator_IM IM)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
s0: sub_index_prop equivocating i

equivocator_state_n (base_s i) ≤ equivocator_state_n (equivocator_state_append (base_s i) (s (dexist i s0)))
by rewrite equivocator_state_append_size; lia. Qed.
The plan item corresponding to an initial state equivocation.
Definition initial_new_machine_transition_item
  (is : composite_state (sub_IM (equivocator_IM IM) equivocating))
  (eqv : sub_index equivocating)
  : composite_plan_item (equivocator_IM IM)
  :=
  let i := proj1_sig eqv in
  let seqv := is eqv in
  let new_l :=
    (existT i (Spawn (equivocator_state_zero seqv)))
    in
  Build_plan_item (composite_type (equivocator_IM IM)) new_l None.
Command for equivocating all states of an initial composite state.
Definition spawn_initial_state
  (is : composite_state (sub_IM (equivocator_IM IM) equivocating))
  : composite_plan (equivocator_IM IM)
  := map (initial_new_machine_transition_item is) (enum (sub_index equivocating)).

Definition replayed_initial_state_from full_replay_state is :=
  fst (composite_apply_plan (equivocator_IM IM) full_replay_state (spawn_initial_state is)).
The final state obtained after replaying an initial state is precisely the lifting of that initial state over the given base state.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

( l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end) → finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

( l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end) → finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

finite_trace_last full_replay_state (_apply_plan full_replay_state (spawn_initial_state is)).1 = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
i: index

(_apply_plan full_replay_state (spawn_initial_state is)).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → i : index, (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
i: index

(_apply_plan full_replay_state (map (initial_new_machine_transition_item is) (enum (sub_index equivocating)))).2 i = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → i : index, (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
i: index

match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ enum (sub_index equivocating)) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end = lift_equivocators_sub_state_to full_replay_state is i
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → i : index, (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
i: index

match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ enum (sub_index equivocating)) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end = match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (full_replay_state i) (is (dexist i e)) | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → i : index, (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
i: index
H2: sub_index_prop equivocating i

(if decide (dexist i H2 ∈ enum (sub_index equivocating)) then equivocator_state_append (full_replay_state i) (is (dexist i H2)) else full_replay_state i) = equivocator_state_append (full_replay_state i) (is (dexist i H2))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hcut: l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → i : index, (_apply_plan full_replay_state (map (initial_new_machine_transition_item is) l)).2 i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
i: index
H2: sub_index_prop equivocating i

dexist i H2 ∈ enum (sub_index equivocating)
by apply elem_of_enum.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: l ⊆ enum (sub_index equivocating) → NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state (composite_type (equivocator_IM IM)))%type
i: index

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state (composite_type (equivocator_IM IM)))%type
i: index
IHl: NoDup l → (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [x])
tr_full_replay_is:= composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x])): (list transition_item * state (composite_type (equivocator_IM IM)))%type
i: index
IHl: (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [x])
i: index
IHl: (tr_full_replay_is := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)) (i : index), tr_full_replay_is.2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end

(composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).2 i = match decide (sub_index_prop equivocating i) with | left e => let eqv := dexist i e in if decide (eqv ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is eqv) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [x])
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
IHl: i : index, afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end

state_update (equivocator_IM IM) afinal (` x) (equivocator_state_extend (afinal (` x)) (equivocator_state_zero (is x))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l ++ [x]) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
IHl: afinal i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end

state_update (equivocator_IM IM) afinal ix (equivocator_state_extend (afinal ix) (equivocator_state_zero (is (dexist ix Hix)))) i = match decide (sub_index_prop equivocating i) with | left e => if decide (dexist i e ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i e)) else full_replay_state i | in_right => full_replay_state i end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dexist i Hix))) = (if decide (dexist i _Hix ∈ l ++ [dexist i Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
n: ix ≠ i
afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dexist i Hix))) = (if decide (dexist i _Hix ∈ l ++ [dexist i Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dexist i Hix))) = (if decide (dexist i _Hix ∈ l ++ [dexist i Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
dexist i _Hix ∉ l
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (afinal i) (equivocator_state_zero (is (dexist i Hix))) = (if decide (dexist i _Hix ∈ l ++ [dexist i Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dexist i Hix))) = equivocator_state_append (full_replay_state i) (is (dexist i _Hix))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i
dexist i _Hix ∈ l ++ [dexist i Hix]
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dexist i Hix))) = equivocator_state_append (full_replay_state i) (is (dexist i _Hix))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

equivocator_state_append (full_replay_state i) (is (dexist i Hix)) = equivocator_state_extend (full_replay_state i) (equivocator_state_zero (is (dexist i Hix)))
by apply equivocator_state_append_singleton_is_extend, (His (dexist i Hix)).
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dexist i _Hix ∈ l ++ [dexist i Hix]
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = full_replay_state i

dexist i _Hix = dexist i Hix
by apply dsig_eq.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)

dexist i _Hix ∉ l
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: NoDup (l ++ [dexist i Hix])
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
Heqv: dexist i _Hix ∈ l

False
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dexist i Hix]
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
Heqv: dexist i _Hix ∈ l

False
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dexist i Hix]
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
Heqv: dexist i _Hix ∈ l

dexist i _Hix ∈ [dexist i Hix]
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
i: index
Hix: sub_index_prop equivocating i
Hincl: l ++ [dexist i Hix] ⊆ enum (sub_index equivocating)
Hnodup: x : sub_index equivocating, x ∈ l → x ∉ [dexist i Hix]
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
Heqv: dexist i _Hix ∈ l

dexist i _Hix = dexist i Hix
by apply dsig_eq.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
IHl: afinal i = (if decide (dexist i _Hix ∈ l) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
n: ix ≠ i

afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dexist i _Hix))
n: ix ≠ i

afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∈ l
IHl: afinal i = equivocator_state_append (full_replay_state i) (is (dexist i _Hix))
n: ix ≠ i

afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
rewrite decide_True; rewrite ?elem_of_app; itauto.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i

afinal i = (if decide (dexist i _Hix ∈ l ++ [dexist ix Hix]) then equivocator_state_append (full_replay_state i) (is (dexist i _Hix)) else full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i

dexist i _Hix ∉ l ++ [dexist ix Hix]
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)
ix: index
Hix: sub_index_prop equivocating ix
Hnodup: NoDup (l ++ [dexist ix Hix])
Hincl: l ++ [dexist ix Hix] ⊆ enum (sub_index equivocating)
i: index
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
_Hix: sub_index_prop equivocating i
H2: dexist i _Hix ∉ l
IHl: afinal i = full_replay_state i
n: ix ≠ i
Hx: dexist i _Hix ∈ [dexist ix Hix]

False
by rewrite elem_of_list_singleton, dsig_eq in Hx. Qed.
For any equivocator_descriptors corresponding to the base state the projection of the replaying of an initial state is empty.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (enum (sub_index equivocating)))).1 = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

l : list (sub_index equivocating), equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)

equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)
plan: (list transition_item * state (composite_type (equivocator_IM IM)))%type
Heqplan: plan = composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)

equivocators_trace_project IM eqv_descriptors plan.1 = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)
plan: (list transition_item * state (composite_type (equivocator_IM IM)))%type
Heqplan: plan = composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)

equivocators_trace_project IM eqv_descriptors plan.1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (plan.2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
l: list (sub_index equivocating)

equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))

equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: equivocators_trace_project IM eqv_descriptors (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).2 i))

equivocators_trace_project IM eqv_descriptors (let (aitems, afinal) := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((let (aitems, afinal) := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state (composite_type (equivocator_IM IM))
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors (litems, lfinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems, lfinal).2 i))

equivocators_trace_project IM eqv_descriptors (let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state (composite_type (equivocator_IM IM))
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors (litems, lfinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems, lfinal).2 i))
aitems: list transition_item
afinal: state (composite_type (equivocator_IM IM))
Hplana: composite_apply_plan (equivocator_IM IM) lfinal (map (initial_new_machine_transition_item is) [x]) = (aitems, afinal)

equivocators_trace_project IM eqv_descriptors (litems ++ aitems, afinal).1 = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n ((litems ++ aitems, afinal).2 i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hplana: composite_apply_plan (equivocator_IM IM) lfinal [initial_new_machine_transition_item is x] = (aitems, afinal)

equivocators_trace_project IM eqv_descriptors (litems ++ aitems) = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (afinal i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' litems = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors) ∧ equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
Heqv_descriptors: existing_descriptor (IM (` x)) (eqv_descriptors (` x)) (full_replay_state (` x))
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
Heqv_descriptors: match eqv_descriptors (` x) with | NewMachine _ => False | Existing i => is_Some (equivocator_state_project (full_replay_state (` x)) i) end
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state (` x)) n)
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

equivocators_trace_project IM eqv_descriptors [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}] = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match equivocators_transition_item_project IM eqv_descriptors {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match match equivocator_vlsm_transition_item_project (IM (` x)) (ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}) (eqv_descriptors (` x)) with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := equivocators_state_project IM eqv_descriptors (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match match match eqv_descriptors (` x) with | NewMachine _ => Some (None, eqv_descriptors (` x)) | Existing j => match ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | {| l := el; input := im; destination := s; output := om |} => match equivocator_state_project s j with | Some sj => match el with | Spawn sn => if decide (j = equivocator_state_last s) then Some (None, NewMachine sn) else Some (None, Existing j) | ContinueWith i lx => if decide (i = j) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing j) | ForkWith i lx => if decide (j = equivocator_state_last s) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing j) end | None => None end end end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := equivocators_state_project IM eqv_descriptors (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match match match ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} with | {| l := el; input := im; destination := s; output := om |} => match equivocator_state_project s n with | Some sj => match el with | Spawn sn => if decide (n = equivocator_state_last s) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i lx => if decide (i = n) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing n) | ForkWith i lx => if decide (n = equivocator_state_last s) then Some (Some {| l := lx; input := im; destination := sj; output := om |}, Existing i) else Some (None, Existing n) end | None => None end end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := equivocators_state_project IM eqv_descriptors (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))); output := None |}, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match match match equivocator_state_project (lfinal (` x)) n with | Some _ => if decide (n = equivocator_state_n (lfinal (` x))) then Some (None, NewMachine (equivocator_state_zero (is x))) else Some (None, Existing n) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := state_update IM (equivocators_state_project IM eqv_descriptors lfinal) (` x) match eqv_descriptors (` x) with | NewMachine sn => sn | Existing i => match equivocator_state_project (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i with | Some si => si | None => equivocator_state_zero (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) end end; output := None |}, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))

match match match equivocator_state_project (lfinal (` x)) n with | Some _ => Some (None, Existing n) | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT (` x) (VLSM.l item'); input := None; destination := state_update IM (equivocators_state_project IM eqv_descriptors lfinal) (` x) match eqv_descriptors (` x) with | NewMachine sn => sn | Existing i => match equivocator_state_project (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i with | Some si => si | None => equivocator_state_zero (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) end end; output := None |}, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (` x) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
x: sub_index equivocating
n: nat
Heqv_x: eqv_descriptors (` x) = Existing n
s_x_n: state (IM (` x))
Heqv_descriptors: equivocator_state_project (full_replay_state (` x)) n = Some s_x_n
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocator_state_n (full_replay_state (` x)) ≤ equivocator_state_n (lfinal (` x))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hltn: n < equivocator_state_n (full_replay_state (` x))
lfinal_x_n: state (IM (` x))
Hltn': n < equivocator_state_n (lfinal (` x))

Some ([], equivocator_descriptors_update IM eqv_descriptors (` x) (Existing n)) = Some ([], eqv_descriptors)
by equivocator_state_update_simpl.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: equivocators_trace_project IM eqv_descriptors litems = Some ([], eqv_descriptors) ∧ ( i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i))
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
i: index

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: i : index, equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
i: index

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
i: index
IHl: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lfinal i)
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i)
by destruct (decide (i = `x)); subst; equivocator_state_update_simpl; [lia |]. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (composite_type (equivocator_IM IM))

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (composite_type (equivocator_IM IM))

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (enum (sub_index equivocating)))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)

(l : list (sub_index equivocating)) (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
l: list (sub_index equivocating)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (aitems, afinal) := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l)).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) in finite_trace_last full_replay_state after_a.1 = after_a.2

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (aitems, afinal) := composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) in let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) afinal (map (initial_new_machine_transition_item is) [x]) in (aitems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state (composite_type (equivocator_IM IM))
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (let (a'items, a'final) := composite_apply_plan (equivocator_IM IM) lfinal (map (initial_new_machine_transition_item is) [x]) in (litems ++ a'items, a'final)).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state (composite_type (equivocator_IM IM))
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2
aitems: list transition_item
afinal: state (composite_type (equivocator_IM IM))
Hplana: composite_apply_plan (equivocator_IM IM) lfinal (map (initial_new_machine_transition_item is) [x]) = (aitems, afinal)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ aitems, afinal).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: state (composite_type (equivocator_IM IM))
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems, lfinal).1 i) j = equivocator_state_project (full_replay_state i) j
Hlst: let after_a := (litems, lfinal) in finite_trace_last full_replay_state after_a.1 = after_a.2
aitems: list transition_item
afinal: state (composite_type (equivocator_IM IM))

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}], state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x)))).1 i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (litems ++ [{| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |}]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (destination {| l := existT (` x) (Spawn (equivocator_state_zero (is x))); input := None; destination := state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))); output := None |} i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
lfinal: composite_state (equivocator_IM IM)
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, lfinal)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
Hlst: finite_trace_last full_replay_state litems = lfinal
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
i: index
j: nat
Hj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project (state_update (equivocator_IM IM) lfinal (` x) (equivocator_state_extend (lfinal (` x)) (equivocator_state_zero (is x))) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
IHl: (i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state litems i) j = equivocator_state_project (full_replay_state i) j
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
j: nat
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = equivocator_state_project (full_replay_state (` x)) j
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = equivocator_state_project (full_replay_state (` x)) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
s_x_j: state (IM (` x))
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = Some s_x_j
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hj, Hltj: j < equivocator_state_n (full_replay_state (` x))

equivocator_state_project (equivocator_state_extend (finite_trace_last full_replay_state litems (` x)) (equivocator_state_zero (is x))) j = Some s_x_j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: sub_index equivocating
l: list (sub_index equivocating)
litems: list transition_item
Hplanl: composite_apply_plan (equivocator_IM IM) full_replay_state (map (initial_new_machine_transition_item is) l) = (litems, finite_trace_last full_replay_state litems)
j: nat
s_x_j: state (IM (` x))
IHl: equivocator_state_project (finite_trace_last full_replay_state litems (` x)) j = Some s_x_j
aitems: list transition_item
afinal: composite_state (equivocator_IM IM)
Hj, Hltj: j < equivocator_state_n (full_replay_state (` x))

j < equivocator_state_n (finite_trace_last full_replay_state litems (` x))
by apply equivocator_state_project_Some_rev in IHl as Hltj'. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))
i: index

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) ji)
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
lst:= finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is): state (free_composite_vlsm (equivocator_IM IM))
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i)) (equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
by rewrite equivocator_state_project_replayed_initial_state_from_left, Hpr_ji. Qed. Definition replayed_trace_from full_replay_state is tr := replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
tr': list transition_item
item: transition_item
finite_trace_last full_replay_state (replayed_trace_from full_replay_state is (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is [])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ []) = lift_equivocators_sub_state_to full_replay_state is
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) = lift_equivocators_sub_state_to full_replay_state is
by apply replayed_initial_state_from_lift.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state (replayed_trace_from full_replay_state is (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
tr': list transition_item
item: transition_item

finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr' ++ [item])) = lift_equivocators_sub_state_to full_replay_state (finite_trace_last is (tr' ++ [item]))
by rewrite map_app, app_assoc; cbn; rewrite !finite_trace_last_is_last. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lst i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ []) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
Htr: tr = []

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is) i) j = equivocator_state_project (full_replay_state i) j
by apply equivocator_state_project_replayed_initial_state_from_left.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr' ++ [lst])) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [lst]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (finite_trace_last full_replay_state ((replayed_initial_state_from full_replay_state is ++ map (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr') ++ [pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) lst]) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (destination (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]

(i : index) (j : nat), j < equivocator_state_n (full_replay_state i) → equivocator_state_project (lift_equivocators_sub_state_to full_replay_state (destination lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project (lift_equivocators_sub_state_to full_replay_state (destination lst) i) j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)

equivocator_state_project match decide (sub_index_prop equivocating i) with | left e => equivocator_state_append (full_replay_state i) (destination lst (dexist i e)) | in_right => full_replay_state i end j = equivocator_state_project (full_replay_state i) j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr, tr': list transition_item
lst: transition_item
Htr: tr = tr' ++ [lst]
i: index
j: nat
Hltj: j < equivocator_state_n (full_replay_state i)
s: sub_index_prop equivocating i

equivocator_state_project (equivocator_state_append (full_replay_state i) (destination lst (dexist i s))) j = equivocator_state_project (full_replay_state i) j
by rewrite equivocator_state_append_project_1. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

i : index, equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))
i: index

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

equivocator_state_descriptor_project (lst i) (eqv_descriptors i) = equivocator_state_descriptor_project (full_replay_state i) (eqv_descriptors i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) j) end = match eqv_descriptors i with | NewMachine sn => sn | Existing j => default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) j) end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) ji)
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (free_composite_vlsm (equivocator_IM IM))
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (lst i)) (equivocator_state_project (lst i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
i: index
ji: nat
full_i_ji: state (IM i)
Hpr_ji: equivocator_state_project (full_replay_state i) ji = Some full_i_ji
Hltji: ji < equivocator_state_n (full_replay_state i)

default (equivocator_state_zero (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i)) (equivocator_state_project (finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr) i) ji) = default (equivocator_state_zero (full_replay_state i)) (equivocator_state_project (full_replay_state i) ji)
by rewrite equivocator_state_project_replayed_trace_from_left, Hpr_ji. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))

equivocators_total_state_project IM lst = equivocators_total_state_project IM full_replay_state
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))

equivocators_total_state_project IM lst = equivocators_total_state_project IM full_replay_state
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))

x : index, equivocators_total_state_project IM lst x = equivocators_total_state_project IM full_replay_state x
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))
i: index

equivocators_total_state_project IM lst i = equivocators_total_state_project IM full_replay_state i
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
lst:= finite_trace_last full_replay_state (replayed_trace_from full_replay_state is tr): state (composite_type (equivocator_IM IM))
i: index

not_equivocating_equivocator_descriptors IM (zero_descriptor IM) full_replay_state
by apply zero_descriptor_not_equivocating. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (replayed_trace_from full_replay_state is tr) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (replayed_trace_from full_replay_state is tr) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' (replayed_initial_state_from full_replay_state is) = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors) ∧ equivocators_trace_project IM eqv_descriptors (replayed_initial_state_from full_replay_state is) = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) (tr ++ [x])) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) (tr ++ [x])) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr ++ map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

(preX sufX : list (composite_transition_item IM)) (eqv_descriptors' : equivocator_descriptors IM), equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some (sufX, eqv_descriptors') ∧ equivocators_trace_project IM eqv_descriptors' (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr) = Some (preX, eqv_descriptors) ∧ [] = preX ++ sufX
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors) ∧ equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) tr) = Some ([], eqv_descriptors) ∧ [] = [] ++ []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
IHtr: equivocators_trace_project IM eqv_descriptors (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr) = Some ([], eqv_descriptors)

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
x: transition_item
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [x]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
l: label FreeSubE
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

equivocators_trace_project IM eqv_descriptors (map (pre_VLSM_embedding_transition_item_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)) [{| l := l; input := input; destination := destination; output := output |}]) = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
l: label FreeSubE
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := l; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT sub_i li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT sub_i li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: not_equivocating_equivocator_descriptors IM eqv_descriptors full_replay_state

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: existing_descriptor (IM i) (eqv_descriptors i) (full_replay_state i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
Heqv_descriptors: match eqv_descriptors i with | NewMachine _ => False | Existing i0 => is_Some (equivocator_state_project (full_replay_state i) i0) end

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
Heqv_descriptors: is_Some (equivocator_state_project (full_replay_state i) n)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match equivocators_transition_item_project IM eqv_descriptors (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM (projT1 (l (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})))) (ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})) (eqv_descriptors (projT1 (l (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})))) with | Some (Some item', deqv') => Some (Some {| l := existT (projT1 (l (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}))) (l item'); input := VLSM.input (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}); destination := equivocators_state_project IM eqv_descriptors (VLSM.destination (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})); output := VLSM.output (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}) |}, equivocator_descriptors_update IM eqv_descriptors (projT1 (l (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}))) deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors (projT1 (l (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |}))) deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM i) (ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})) (eqv_descriptors i) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match equivocator_vlsm_transition_item_project (IM i) (ProjectionTraces.composite_transition_item_projection (equivocator_IM IM) (pre_VLSM_embedding_transition_item_project (composite_type (sub_IM (equivocator_IM IM) equivocating)) (composite_type (equivocator_IM IM)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) {| l := existT (dexist i Hi) li; input := input; destination := destination; output := output |})) (Existing n) with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match equivocator_state_project (lift_equivocators_sub_state_to full_replay_state destination i) n with | Some sj => match eq_rect_r (λ n : index, EquivocatorLabel (IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := sj; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (Some {| l := lx; input := input; destination := sj; output := output |}, Existing i0) else Some (None, Existing n) end | None => None end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: state (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, EquivocatorLabel (IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (lift_equivocators_sub_state_to full_replay_state destination i)) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: state (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, EquivocatorLabel (IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (equivocator_state_append (full_replay_state i) (destination (dexist i Hi)))) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (equivocator_state_append (full_replay_state i) (destination (dexist i Hi)))) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (free_composite_vlsm (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
input: option message
destination: state FreeSubE
output: option message
tr: list transition_item
eqv_descriptors: equivocator_descriptors IM
n: nat
Heqv_l: eqv_descriptors i = Existing n
s_l_n: state (IM i)
Hs_l_n: equivocator_state_project (full_replay_state i) n = Some s_l_n
Hltn: n < equivocator_state_n (full_replay_state i)
Hltsize: equivocator_state_n (full_replay_state i) ≤ equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)
lift_n: state (IM i)
Hlt_n: n < equivocator_state_n (lift_equivocators_sub_state_to full_replay_state destination i)

match match match eq_rect_r (λ n : index, EquivocatorLabel (IM n)) (equivocator_state_append_label (IM i) (full_replay_state i) li) eq_refl with | Spawn sn => if decide (n = equivocator_state_last (destination (dexist i Hi)) + equivocator_state_n (full_replay_state i)) then Some (None, NewMachine sn) else Some (None, Existing n) | ContinueWith i0 lx => if decide (i0 = n) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) | ForkWith i0 lx => if decide (n = equivocator_state_last (destination (dexist i Hi)) + equivocator_state_n (full_replay_state i)) then Some (Some {| l := lx; input := input; destination := lift_n; output := output |}, Existing i0) else Some (None, Existing n) end with | Some (Some item', deqv') => Some (Some {| l := existT i (l item'); input := input; destination := equivocators_state_project IM eqv_descriptors (lift_equivocators_sub_state_to full_replay_state destination); output := output |}, equivocator_descriptors_update IM eqv_descriptors i deqv') | Some (None, deqv') => Some (None, equivocator_descriptors_update IM eqv_descriptors i deqv') | None => None end with | Some (Some item', odescriptor) => Some ([item'], odescriptor) | Some (None, odescriptor) => Some ([], odescriptor) | None => None end = Some ([], eqv_descriptors)
by destruct li as [sn_d | id li | id li]; simpl ; rewrite !decide_False by lia ; equivocator_state_update_simpl. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

equivocators_total_trace_project IM (replayed_trace_from full_replay_state is tr) = []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

equivocators_total_trace_project IM (replayed_trace_from full_replay_state is tr) = []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

from_option fst [] (equivocators_trace_project IM (zero_descriptor IM) (replayed_trace_from full_replay_state is tr)) = []
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: state (composite_type (equivocator_IM IM))
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list transition_item

not_equivocating_equivocator_descriptors IM (zero_descriptor IM) full_replay_state
by apply zero_descriptor_not_equivocating. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
l: composite_label (sub_IM (equivocator_IM IM) equivocating)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
l: composite_label (sub_IM (equivocator_IM IM) equivocating)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om)

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om)

composite_valid (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om)

equivocator_valid (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (lift_equivocators_sub_state_to full_replay_state s i, om)
by rewrite (lift_equivocators_sub_state_to_sub _ _ _ Hi). Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
l: composite_label (sub_IM (equivocator_IM IM) equivocating)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) l (s, om) = (s', om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
l: composite_label (sub_IM (equivocator_IM IM) equivocating)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) l (s, om)
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) l (s, om) = (s', om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om)
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om) = ( s', om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
sub_i: sub_index equivocating
li: label (sub_IM (equivocator_IM IM) equivocating sub_i)
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om)
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) (existT sub_i li) (s, om) = ( s', om')
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT sub_i li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om) = (s', om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Ht: composite_transition (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om) = (s', om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) li (s (dexist i Hi), om) = (s' (dexist i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dexist i Hi)), om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
Ht: (let (si', om') := equivocator_transition (IM i) li (s (dexist i Hi), om) in (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) si', om')) = ( s', om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) li (s (dexist i Hi), om) = (s' (dexist i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dexist i Hi)), om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
s': composite_state (sub_IM (equivocator_IM IM) equivocating)
om': option message
_si': equivocator_state (IM i)
_om': option message
Ht: (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si', _om') = ( s', om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: (_si', _om') = (s' (dexist i Hi), om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) (s' (dexist i Hi)), om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: (_si', _om') = (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si' (dexist i Hi), _om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si' (dexist i Hi)), _om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: (_si', _om') = (_si', _om') → equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

composite_transition (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state (existT (dexist i Hi) li)) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(let (si', om') := equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (lift_equivocators_sub_state_to full_replay_state s i, om) in (state_update (equivocator_IM IM) (lift_equivocators_sub_state_to full_replay_state s) i si', om')) = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(let (si', om') := equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) in (state_update (equivocator_IM IM) (lift_equivocators_sub_state_to full_replay_state s) i si', om')) = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')

(state_update (equivocator_IM IM) (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si'), _om') = (lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si'), _om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index

state_update (equivocator_IM IM) (lift_equivocators_sub_state_to full_replay_state s) i (equivocator_state_append (full_replay_state i) _si') j = lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si') j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
j: index
Hi: sub_index_prop equivocating j
li: label (sub_IM (equivocator_IM IM) equivocating (dexist j Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dexist j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist j Hi) li) ( s, om)

equivocator_state_append (full_replay_state j) _si' = lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist j Hi) _si') j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
lift_equivocators_sub_state_to full_replay_state s j = lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si') j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
j: index
Hi: sub_index_prop equivocating j
li: label (sub_IM (equivocator_IM IM) equivocating (dexist j Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM j)
_om': option message
Hlift: equivocator_transition (IM j) (equivocator_state_append_label (IM j) (full_replay_state j) li) (equivocator_state_append (full_replay_state j) (s (dexist j Hi)), om) = (equivocator_state_append (full_replay_state j) _si', _om')
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist j Hi) li) ( s, om)

equivocator_state_append (full_replay_state j) _si' = lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist j Hi) _si') j
by rewrite (lift_equivocators_sub_state_to_sub _ _ _ Hi), state_update_eq.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j

lift_equivocators_sub_state_to full_replay_state s j = lift_equivocators_sub_state_to full_replay_state (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si') j
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j

match decide (sub_index_prop equivocating j) with | left e => equivocator_state_append (full_replay_state j) (s (dexist j e)) | in_right => full_replay_state j end = match decide (sub_index_prop equivocating j) with | left e => equivocator_state_append (full_replay_state j) (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si' (dexist j e)) | in_right => full_replay_state j end
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
i: index
Hi: sub_index_prop equivocating i
li: label (sub_IM (equivocator_IM IM) equivocating (dexist i Hi))
s: composite_state (sub_IM (equivocator_IM IM) equivocating)
om: option message
_si': equivocator_state (IM i)
_om': option message
Hv: composite_valid (sub_IM (equivocator_IM IM) equivocating) (existT (dexist i Hi) li) ( s, om)
Hlift: equivocator_transition (IM i) (equivocator_state_append_label (IM i) (full_replay_state i) li) (equivocator_state_append (full_replay_state i) (s (dexist i Hi)), om) = (equivocator_state_append (full_replay_state i) _si', _om')
j: index
n: i ≠ j
s0: sub_index_prop equivocating j

equivocator_state_append (full_replay_state j) (s (dexist j s0)) = equivocator_state_append (full_replay_state j) (state_update (sub_IM (equivocator_IM IM) equivocating) s (dexist i Hi) _si' (dexist j s0))
by rewrite state_update_neq; [| inversion 1]. Qed. Section sec_preloaded_constrained_projection.
By replaying a valid_trace on top of a valid_state we obtain a valid_trace. We derive this as a more general VLSM_weak_embedding result for a class of VLSM parameterized by a constraint having "good" properties and preloaded with a seed, to allow deriving the VLSM_weak_embedding result for both the free composition of equivocators and for the no message equivocation composition of equivocators (free, or with an additional fixed-set state-equivocation constraint).
Context
  (constraint :
    composite_label (equivocator_IM IM) ->
    composite_state (equivocator_IM IM) * option message -> Prop)
  (seed1 : message -> Prop)
  (SeededCE := preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1)
  (Hconstraint_none : forall i ns s, i ∈ equivocating -> valid_state_prop SeededCE s ->
                        constraint (existT i (Spawn ns)) (s, None))
  (Hseed : forall m, seed m -> valid_message_prop SeededCE m)
  (full_replay_state : composite_state (equivocator_IM IM))
  (Hfull_replay_state : valid_state_prop SeededCE full_replay_state)
  (Hsubsumption : forall l s om, input_valid SeededXE l (s, om) ->
    valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) ->
    constraint
      (lift_equivocators_sub_label_to full_replay_state l)
      (lift_equivocators_sub_state_to full_replay_state s, om))
  .

message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

( l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)) → finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

( l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)) → finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is)
by intros Hplan; apply Hplan.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is

l : list (sub_index equivocating), l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
l: list (sub_index equivocating)

l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hincl: [] ⊆ enum (sub_index equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) [])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
Hincl: [] ⊆ enum (sub_index equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) [])
by constructor.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
IHl: l ⊆ enum (sub_index equivocating) → finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) (l ++ [x]))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l ++ map (initial_new_machine_transition_item is) [x])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l) ∧ finite_valid_plan_from SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (map (initial_new_machine_transition_item is) [x])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

finite_valid_plan_from SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (map (initial_new_machine_transition_item is) [x])
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

input_valid_transition SeededCE (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None) (state_update (equivocator_IM IM) (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x) (equivocator_state_extend ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x), None).1 (equivocator_state_zero (is x))), None)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

input_valid_transition SeededCE (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None) (state_update (equivocator_IM IM) (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x) (equivocator_state_extend ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2 (` x)) (equivocator_state_zero (is x))), None)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
option_valid_message_prop SeededCE None
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
initial_state_prop (equivocator_state_zero (is x))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
constraint (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
by apply apply_plan_last_valid.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

option_valid_message_prop SeededCE None
by apply option_valid_message_None.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

initial_state_prop (equivocator_state_zero (is x))
by apply His.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

constraint (existT (` x) (Spawn (equivocator_state_zero (is x)))) ((apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2, None)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

` x ∈ equivocating
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)
valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

` x ∈ equivocating
by destruct_dec_sig x i Hi Hx; subst.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: finite_valid_plan_from SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
IHl: valid_state_prop SeededCE (finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1)

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
lst: state SeededCE
Heqlst: lst = finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1
IHl: valid_state_prop SeededCE lst

valid_state_prop SeededCE (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
His: composite_initial_state_prop (sub_IM (equivocator_IM IM) equivocating) is
x: sub_index equivocating
l: list (sub_index equivocating)
Hincl: l ++ [x] ⊆ enum (sub_index equivocating)
lst: state SeededCE
Heqlst: lst = finite_trace_last full_replay_state (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).1
IHl: valid_state_prop SeededCE lst

lst = (apply_plan SeededCE full_replay_state (map (initial_new_machine_transition_item is) l)).2
by subst; apply apply_plan_last. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

m : message, initial_message_prop m → valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

m : message, initial_message_prop m → valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hseeded: seed m
valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hinit: initial_message_prop m

initial_message_prop m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
i: index
Hi: bool_decide (sub_index_prop equivocating i)
Hinit: mi : initial_message (sub_IM (equivocator_IM IM) equivocating (i ↾ Hi)), ` mi = m

initial_message_prop m
by left; exists i.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
m: message
Hseeded: seed m

valid_message_prop SeededCE m
by apply Hseed. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

VLSM_weak_embedding SeededXE SeededCE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)

VLSM_weak_embedding SeededXE SeededCE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message

input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → option_valid_message_prop SeededCE om → valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
s': state SeededXE
om': option message
input_valid_transition SeededXE l (s, om) (s', om') → transition (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state SeededXE
initial_state_prop s → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
m: message
input_valid SeededXE l (s, Some m) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → initial_message_prop m → valid_message_prop SeededCE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message

input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → option_valid_message_prop SeededCE om → valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om
constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
by apply lift_equivocators_sub_valid, Hv.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
Hv: input_valid SeededXE l (s, om)
HsY: valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
HomY: option_valid_message_prop SeededCE om

constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
by apply Hsubsumption.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
om: option message
s': state SeededXE
om': option message

input_valid_transition SeededXE l (s, om) (s', om') → transition (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
by intros Ht; apply lift_equivocators_sub_transition; apply Ht.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state SeededXE

initial_state_prop s → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
s: state SeededXE
H2: initial_state_prop s

valid_state_prop SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state s))
by apply finite_valid_trace_last_pstate, replayed_initial_state_from_valid.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
l: label SeededXE
s: state SeededXE
m: message

input_valid SeededXE l (s, Some m) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → initial_message_prop m → valid_message_prop SeededCE m
by intros; apply lift_initial_message. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE full_replay_state (replayed_initial_state_from full_replay_state is) ∧ finite_valid_trace_from SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is)) (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state is)) (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
constraint: composite_label (equivocator_IM IM) → composite_state (equivocator_IM IM) * option message → Prop
seed1: message → Prop
SeededCE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) constraint) seed1: VLSM message
Hconstraint_none: (i : index) (ns : state (IM i)) (s : state SeededCE), i ∈ equivocating → valid_state_prop SeededCE s → constraint (existT i (Spawn ns)) (s, None)
Hseed: m : message, seed m → valid_message_prop SeededCE m
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededCE full_replay_state
Hsubsumption: (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop SeededCE (lift_equivocators_sub_state_to full_replay_state s) → constraint (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace_from SeededXE is tr
His: initial_state_prop is

finite_valid_trace_from SeededCE (lift_equivocators_sub_state_to full_replay_state is) (pre_VLSM_embedding_finite_trace_project FreeSubE FreeE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) tr)
by apply (VLSM_weak_embedding_finite_valid_trace_from lift_equivocators_sub_weak_projection). Qed. End sec_preloaded_constrained_projection.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state

VLSM_weak_embedding SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state

VLSM_weak_embedding SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state

(sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX

finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

(i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) (s, None)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) ?full_replay_state
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
(l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to ?full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to ?full_replay_state l) (lift_equivocators_sub_state_to ?full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to ?full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to ?full_replay_state) (lift_equivocators_sub_state_to ?full_replay_state) trX)
finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

(i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) (s, None)
done.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m
by intros; apply initial_message_is_valid; right.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) ?full_replay_state
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

VLSM_incl_part (preloaded_vlsm FreeE (λ _ : message, True)) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))
by apply preloaded_free_composite_vlsm_spec.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from SeededXE sX trX
H2: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) s → free_constraint (equivocator_IM IM) (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

(l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state s) → free_constraint (equivocator_IM IM) (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
done.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
sX: state SeededXE
trX: list transition_item
HtrX: finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)

VLSM_incl_part (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) (preloaded_vlsm_machine FreeE (λ _ : message, True))
by apply constrained_preloaded_vlsm_incl_preloaded_with_all_messages. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state

VLSM_weak_embedding (preloaded_with_all_messages_vlsm FreeSubE) (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state

VLSM_weak_embedding (preloaded_with_all_messages_vlsm FreeSubE) (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
om: option message

input_valid (preloaded_with_all_messages_vlsm FreeSubE) l (s, om) → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s) → option_valid_message_prop (preloaded_with_all_messages_vlsm FreeE) om → valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
om: option message
s': state (preloaded_with_all_messages_vlsm FreeSubE)
om': option message
input_valid_transition (preloaded_with_all_messages_vlsm FreeSubE) l (s, om) (s', om') → transition (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
initial_state_prop s → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
m: message
input_valid (preloaded_with_all_messages_vlsm FreeSubE) l (s, Some m) → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s) → initial_message_prop m → valid_message_prop (preloaded_with_all_messages_vlsm FreeE) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
om: option message

input_valid (preloaded_with_all_messages_vlsm FreeSubE) l (s, om) → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s) → option_valid_message_prop (preloaded_with_all_messages_vlsm FreeE) om → valid (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
by intros; apply lift_equivocators_sub_valid, Hv.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
om: option message
s': state (preloaded_with_all_messages_vlsm FreeSubE)
om': option message

input_valid_transition (preloaded_with_all_messages_vlsm FreeSubE) l (s, om) (s', om') → transition (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om) = (lift_equivocators_sub_state_to full_replay_state s', om')
by intro Ht; apply lift_equivocators_sub_transition; apply Ht.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)

initial_state_prop s → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
H2: initial_state_prop s

valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
H2: initial_state_prop s

valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (finite_trace_last full_replay_state (replayed_initial_state_from full_replay_state s))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
H2: initial_state_prop s

finite_valid_trace_from (preloaded_with_all_messages_vlsm FreeE) full_replay_state (replayed_initial_state_from full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
H2: initial_state_prop s

finite_valid_trace_from {| vlsm_type := FreeE; vlsm_machine := {| vlsm_type := preloaded_vlsm (free_composite_vlsm (equivocator_IM IM)) (λ _ : message, True); vlsm_machine := preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True) |} |} full_replay_state (replayed_initial_state_from full_replay_state s)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
s: state (preloaded_with_all_messages_vlsm FreeSubE)
H2: initial_state_prop s

valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True)) full_replay_state
by eapply VLSM_incl_valid_state; [apply preloaded_free_composite_vlsm_spec |].
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: constrained_state_prop FreeE full_replay_state
l: label (preloaded_with_all_messages_vlsm FreeSubE)
s: state (preloaded_with_all_messages_vlsm FreeSubE)
m: message

input_valid (preloaded_with_all_messages_vlsm FreeSubE) l (s, Some m) → valid_state_prop (preloaded_with_all_messages_vlsm FreeE) (lift_equivocators_sub_state_to full_replay_state s) → initial_message_prop m → valid_message_prop (preloaded_with_all_messages_vlsm FreeE) m
by intros; apply any_message_is_valid_in_preloaded. Qed. Section sec_seeded_no_equiv. Context (SeededAllXE : VLSM message := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint _) seed) (full_replay_state : composite_state (equivocator_IM IM)) (Hfull_replay_state : valid_state_prop SeededAllXE full_replay_state) .
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label SeededXE
s: state SeededXE
om: option message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, om)

no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label SeededXE
s: state SeededXE
om: option message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, om)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label SeededXE
s: state SeededXE
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
Hs: valid_state_prop SeededXE s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
Hc1: composite_no_equivocations_except_from (sub_IM (equivocator_IM IM) equivocating) seed l (s, Some m)
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
Hsub_sent: composite_has_been_sent (sub_IM (equivocator_IM IM) equivocating) (s, Some m).1 m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

composite_no_equivocations_except_from (equivocator_IM IM) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, Some m)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

composite_has_been_sent (equivocator_IM IM) (lift_equivocators_sub_state_to full_replay_state s, Some m).1 m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

has_been_sent (equivocator_IM IM i) ((lift_equivocators_sub_state_to full_replay_state s, Some m).1 i) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

equivocator_has_been_sent (IM i) (lift_equivocators_sub_state_to full_replay_state s i) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
sub_i: sub_index equivocating
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating sub_i) ((s, Some m).1 sub_i) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
i: index
Hi: sub_index_prop equivocating i
Heqsub_i: sub_i = dexist i Hi

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dexist i Hi))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: has_been_sent (sub_IM (equivocator_IM IM) equivocating (dexist i Hi)) ((s, Some m).1 (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dexist i Hi))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: has_been_sent (equivocator_IM IM (` (dexist i Hi))) ((s, Some m).1 (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dexist i Hi))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

equivocator_has_been_sent (IM i) (equivocator_state_append (full_replay_state i) (s (dexist i Hi))) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

constrained_state_prop (equivocator_vlsm (IM i)) (full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)
constrained_state_prop (equivocator_vlsm (IM i)) (s (dexist i Hi))
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

constrained_state_prop (equivocator_vlsm (IM i)) (full_replay_state i)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

VLSM_incl_part (preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM))) (preloaded_vlsm_machine (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) (λ _ : message, True))
by apply preloaded_with_all_messages_free_composite_vlsm_spec.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop {| vlsm_type := composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed; vlsm_machine := preloaded_with_all_messages_vlsm (free_composite_vlsm (equivocator_IM IM)) |} full_replay_state
l: label SeededXE
s: state SeededXE
m: message
constraint:= no_equivocations_additional_constraint_with_preloaded (sub_IM (equivocator_IM IM) equivocating) (free_constraint (sub_IM (equivocator_IM IM) equivocating)) seed: composite_label (sub_IM (equivocator_IM IM) equivocating) → composite_state (sub_IM (equivocator_IM IM) equivocating) * option message → Prop
Hs: valid_state_prop {| vlsm_type := preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed; vlsm_machine := preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) |} s
i: index
Hi: sub_index_prop equivocating i
Hsent: equivocator_has_been_sent (IM i) (s (dexist i Hi)) m
Hfull_replay_state_pr: i : index, constrained_state_prop (composite_vlsm (equivocator_IM IM) (free_constraint (equivocator_IM IM))) full_replay_state → constrained_state_prop (equivocator_IM IM i) (full_replay_state i)
Hincl: VLSM_incl (preloaded_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) seed) (preloaded_with_all_messages_vlsm (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint))
Hs_pr: i : sub_index equivocating, constrained_state_prop (composite_vlsm (sub_IM (equivocator_IM IM) equivocating) constraint) s → constrained_state_prop (sub_IM (equivocator_IM IM) equivocating i) (s i)

constrained_state_prop (equivocator_vlsm (IM i)) (s (dexist i Hi))
by apply (Hs_pr (dexist i Hi) Hs). Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

m : message, seed m → valid_message_prop SeededAllXE m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

m : message, seed m → valid_message_prop SeededAllXE m
by intros m Hm; apply initial_message_is_valid; right. Qed.
Here we specialize the generic lift_equivocators_sub_weak_projection result for the equivocators_no_equivocations_constraint.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

VLSM_weak_embedding SeededXE SeededAllXE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

VLSM_weak_embedding SeededXE SeededAllXE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state

(sX : state SeededXE) (trX : list transition_item), finite_valid_trace_from SeededXE sX trX → finite_valid_trace_from SeededAllXE (lift_equivocators_sub_state_to full_replay_state sX) (pre_VLSM_embedding_finite_trace_project SeededXE SeededAllXE (lift_equivocators_sub_label_to full_replay_state) (lift_equivocators_sub_state_to full_replay_state) trX)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
H2: seed m

valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) m
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label SeededXE
s: state SeededXE
om: option message
H2: input_valid SeededXE l (s, om)
H3: valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)
no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
m: message
H2: seed m

valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) m
by apply sent_are_valid.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
l: label SeededXE
s: state SeededXE
om: option message
H2: input_valid SeededXE l (s, om)
H3: valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s)

no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
by apply SeededNoEquiv_subsumption. Qed.
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= composite_no_equivocation_vlsm_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (i : index) (ns : state (IM i)) (s : state (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed)), i ∈ equivocating → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) s → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (existT i (Spawn ns)) ( s, None)) → ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state (sub_IM (equivocator_IM IM) equivocating)) (tr : list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))), finite_valid_trace SeededXE is tr → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( m : message, seed m → valid_message_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) m) → full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state (sub_IM (equivocator_IM IM) equivocating)) (tr : list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))), finite_valid_trace SeededXE is tr → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr
Hvalid: full_replay_state : composite_state (equivocator_IM IM), valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state → ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state (sub_IM (equivocator_IM IM) equivocating)) (tr : list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))), finite_valid_trace SeededXE is tr → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state (sub_IM (equivocator_IM IM) equivocating)) (tr : list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))), finite_valid_trace SeededXE is tr → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

finite_valid_trace_from SeededAllXE full_replay_state (replayed_trace_from full_replay_state is tr)
message, index: Type
EqDecision0: EqDecision index
H: finite.Finite index
IM: index → VLSM message
H0: i : index, HasBeenSentCapability (IM i)
H1: i : index, HasBeenReceivedCapability (IM i)
seed: message → Prop
equivocating: list index
Free:= free_composite_vlsm IM: VLSM message
FreeE:= free_composite_vlsm (equivocator_IM IM): VLSM message
FreeSubE:= free_composite_vlsm (sub_IM (equivocator_IM IM) equivocating): VLSM message
SeededXE:= seeded_equivocators_no_equivocation_vlsm IM equivocating seed: VLSM message
SeededAllXE:= preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed: VLSM message
full_replay_state: composite_state (equivocator_IM IM)
Hfull_replay_state: valid_state_prop SeededAllXE full_replay_state
is: composite_state (sub_IM (equivocator_IM IM) equivocating)
tr: list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))
Htr: finite_valid_trace SeededXE is tr
Hvalid: ( (l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)) → (is : composite_state (sub_IM (equivocator_IM IM) equivocating)) (tr : list (composite_transition_item (sub_IM (equivocator_IM IM) equivocating))), finite_valid_trace SeededXE is tr → finite_valid_trace_from (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) full_replay_state (replayed_trace_from full_replay_state is tr)

(l : label SeededXE) (s : state SeededXE) (om : option message), input_valid SeededXE l (s, om) → valid_state_prop (preloaded_vlsm (composite_vlsm (equivocator_IM IM) (no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed)) seed) (lift_equivocators_sub_state_to full_replay_state s) → no_equivocations_additional_constraint_with_preloaded (equivocator_IM IM) (free_constraint (equivocator_IM IM)) seed (lift_equivocators_sub_label_to full_replay_state l) (lift_equivocators_sub_state_to full_replay_state s, om)
by intros; apply SeededNoEquiv_subsumption. Qed. End sec_seeded_no_equiv. End sec_all_equivocating.