def
CordialMiners.instDecidableEqBlock.decEq
{P✝ : Type u_1}
{Wave✝ : Type u_2}
{Slot✝ : Type u_3}
{Hash✝ : Type u_4}
[DecidableEq P✝]
[DecidableEq Wave✝]
[DecidableEq Slot✝]
[DecidableEq Hash✝]
(x✝ x✝¹ : Block P✝ Wave✝ Slot✝ Hash✝)
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[implicit_reducible]
instance
CordialMiners.instDecidableEqBlock
{P✝ : Type u_1}
{Wave✝ : Type u_2}
{Slot✝ : Type u_3}
{Hash✝ : Type u_4}
[DecidableEq P✝]
[DecidableEq Wave✝]
[DecidableEq Slot✝]
[DecidableEq Hash✝]
:
DecidableEq (Block P✝ Wave✝ Slot✝ Hash✝)
theorem
CordialMiners.bl_conflict_symm
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
{b c : Block P Wave Slot Hash}
(h : ConflictBlock b c)
:
ConflictBlock c b
Conflict is symmetric.
theorem
CordialMiners.bl_conflict_irrefl
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
(b : Block P Wave Slot Hash)
:
¬ConflictBlock b b
Conflict is irreflexive: a block never conflicts with itself.
@[reducible, inline]
abbrev
CordialMiners.Blocklace
(P : Type u_5)
(Wave : Type u_6)
(Slot : Type u_7)
(Hash : Type u_8)
:
Type (max (max (max u_8 u_7) u_6) u_5)
A local blocklace is a finite set of blocks.
Equations
- CordialMiners.Blocklace P Wave Slot Hash = Finset (CordialMiners.Block P Wave Slot Hash)
Instances For
def
CordialMiners.hashesOf
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
[DecidableEq Hash]
(L : Blocklace P Wave Slot Hash)
:
Finset Hash
The hashes present in a blocklace.
Equations
Instances For
def
CordialMiners.ParentClosed
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
[DecidableEq Hash]
(L : Blocklace P Wave Slot Hash)
:
A blocklace is parent-closed when every block's parent hashes are present in the blocklace.
Equations
- CordialMiners.ParentClosed L = ∀ b ∈ L, ∀ h ∈ b.parents, h ∈ CordialMiners.hashesOf L
Instances For
theorem
CordialMiners.bl_02_insert_parentClosed
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
[DecidableEq P]
[DecidableEq Wave]
[DecidableEq Slot]
[DecidableEq Hash]
{L : Blocklace P Wave Slot Hash}
{b : Block P Wave Slot Hash}
(hL : ParentClosed L)
(hb : b.parents ⊆ hashesOf L)
:
ParentClosed (insert b L)
BL-02: inserting a block whose parents are already present preserves parent closure.
def
CordialMiners.Observes
{P : Type u_1}
{Wave : Type u_2}
{Slot : Type u_3}
{Hash : Type u_4}
(L : Blocklace P Wave Slot Hash)
(a b : Block P Wave Slot Hash)
:
Observation: a observes b by following parent pointers zero or more times.
Equations
- CordialMiners.Observes L a b = Relation.ReflTransGen (CordialMiners.ParentEdge L) a b