Documentation

CordialMiners.Trec.Syntax

inductive CordialMiners.TrecFact (Wave : Type u_1) (Hash : Type u_2) :
Type (max u_1 u_2)

A coarse protocol fact (the language of T_rec). Evidence-free: a certThresh fact records that a threshold certificate exists, not the signers or signatures.

  • propose {Wave : Type u_1} {Hash : Type u_2} (w : Wave) (h : Hash) : TrecFact Wave Hash
  • qApprove {Wave : Type u_1} {Hash : Type u_2} (w : Wave) (h : Hash) : TrecFact Wave Hash
  • certThresh {Wave : Type u_1} {Hash : Type u_2} (w : Wave) (h : Hash) : TrecFact Wave Hash
  • final {Wave : Type u_1} {Hash : Type u_2} (w : Wave) (h : Hash) : TrecFact Wave Hash
  • finalLeader {Wave : Type u_1} {Hash : Type u_2} (w : Wave) (h : Hash) : TrecFact Wave Hash
  • orderedPrefix {Wave : Type u_1} {Hash : Type u_2} (hs : List Hash) : TrecFact Wave Hash
Instances For
    @[implicit_reducible]
    instance CordialMiners.instDecidableEqTrecFact {Wave✝ : Type u_1} {Hash✝ : Type u_2} [DecidableEq Wave✝] [DecidableEq Hash✝] :
    DecidableEq (TrecFact Wave✝ Hash✝)
    Equations
    def CordialMiners.instDecidableEqTrecFact.decEq {Wave✝ : Type u_1} {Hash✝ : Type u_2} [DecidableEq Wave✝] [DecidableEq Hash✝] (x✝ x✝¹ : TrecFact Wave✝ Hash✝) :
    Decidable (x✝ = x✝¹)
    Equations
    Instances For
      @[reducible, inline]
      abbrev CordialMiners.TrecState (Wave : Type u_3) (Hash : Type u_4) :
      Type (max u_4 u_3)

      A coarse state is the finite set of facts established so far.

      Equations
      Instances For
        inductive CordialMiners.TrecState.Step {Wave : Type u_1} {Hash : Type u_2} [DecidableEq Wave] [DecidableEq Hash] :
        TrecState Wave HashTrecState Wave HashProp

        The coarse step relation: each conceptual transition adds the fact justified by the facts already present. Proposal is always available; the others gate on their precondition fact. The state only grows, which is what makes the coarse theory monotone and proof-friendly.

        Instances For
          theorem CordialMiners.trec_step_monotone {Wave : Type u_1} {Hash : Type u_2} [DecidableEq Wave] [DecidableEq Hash] {s s' : TrecState Wave Hash} (h : s.Step s') :
          s s'

          The coarse state only grows: every step adds facts and removes none.