Skip to content

Conversation

@traiansf
Copy link
Contributor

Attempting an alternate approach to defining byzantine traces.

@traiansf traiansf changed the title progress Alternate Byzantine Behavior definition based on message dependencies Jan 27, 2022
@traiansf traiansf force-pushed the msg-dep-byzantine-behavior branch from 730314d to 69c618a Compare January 28, 2022 16:07
Comment on lines 343 to 354
Definition fixed_byzantine_trace_prop
(is : composite_state (sub_IM IM non_byzantine))
(tr : list (composite_transition_item (sub_IM IM non_byzantine)))
: Prop :=
exists
(byzantine_replacements_IM : sub_index byzantine -> VLSM message)
(no_initial_messages_in_byzantine_IM : no_initial_messages_in_IM_prop byzantine_replacements_IM)
(can_emit_signed_byzantine : channel_authentication_prop byzantine_replacements_IM (sub_IM_A byzantine A) (sub_IM_sender byzantine A sender)),
exists bis btr,
finite_valid_trace (fixed_byantine_composite_vlsm byzantine_replacements_IM) bis btr /\
pre_loaded_fixed_non_byzantine_state_projection byzantine_replacements_IM bis = is /\
VLSM_projection_trace_project (pre_loaded_fixed_non_byzantine_vlsm_projection byzantine_replacements_IM) btr = tr.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like a perfect thing to refactor into a Record, since you have already come up with the field names : )

Suggested change
Definition fixed_byzantine_trace_prop
(is : composite_state (sub_IM IM non_byzantine))
(tr : list (composite_transition_item (sub_IM IM non_byzantine)))
: Prop :=
exists
(byzantine_replacements_IM : sub_index byzantine -> VLSM message)
(no_initial_messages_in_byzantine_IM : no_initial_messages_in_IM_prop byzantine_replacements_IM)
(can_emit_signed_byzantine : channel_authentication_prop byzantine_replacements_IM (sub_IM_A byzantine A) (sub_IM_sender byzantine A sender)),
exists bis btr,
finite_valid_trace (fixed_byantine_composite_vlsm byzantine_replacements_IM) bis btr /\
pre_loaded_fixed_non_byzantine_state_projection byzantine_replacements_IM bis = is /\
VLSM_projection_trace_project (pre_loaded_fixed_non_byzantine_vlsm_projection byzantine_replacements_IM) btr = tr.
Record fixed_byzantine_trace_prop
(is : composite_state (sub_IM IM non_byzantine))
(tr : list (composite_transition_item (sub_IM IM non_byzantine)))
: Prop := {
byzantine_replacements_IM : sub_index byzantine -> VLSM message;
no_initial_messages_in_byzantine_IM : no_initial_messages_in_IM_prop byzantine_replacements_IM;
can_emit_signed_byzantine : channel_authentication_prop byzantine_replacements_IM (sub_IM_A byzantine A) (sub_IM_sender byzantine A sender);
bis : _;
btr : _;
eq_1 : finite_valid_trace (fixed_byantine_composite_vlsm byzantine_replacements_IM) bis btr;
eq_2 : pre_loaded_fixed_non_byzantine_state_projection byzantine_replacements_IM bis = is;
eq_3 : VLSM_projection_trace_project (pre_loaded_fixed_non_byzantine_vlsm_projection byzantine_replacements_IM) btr = tr;
}.

@traiansf traiansf force-pushed the msg-dep-limited-equivocation-validation branch from b577875 to 8a58e49 Compare January 31, 2022 11:55
Co-authored-by: Wojciech Kołowski <wkolowski@protonmail.com>
@traiansf traiansf force-pushed the msg-dep-byzantine-behavior branch from fcfb2bf to d1a4a3f Compare January 31, 2022 12:26
@traiansf traiansf force-pushed the msg-dep-byzantine-behavior branch 2 times, most recently from 15397cb to 0d30980 Compare February 9, 2022 20:06
@traiansf traiansf force-pushed the msg-dep-byzantine-behavior branch from 0d30980 to 04af695 Compare February 9, 2022 20:40
Base automatically changed from msg-dep-limited-equivocation-validation to master February 18, 2022 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants