Documentation

Examples.Ratchet.Proof

Instances
    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem DY.Example.Ratchet.computeTranscriptHash_inj [HasProofTrace] (previousTxHash1 : Bytes) (elem1 : TranscriptElement) (previousTxHash2 : Bytes) (elem2 : TranscriptElement) :
      computeTranscriptHash previousTxHash1 elem1 = computeTranscriptHash previousTxHash2 elem2previousTxHash1 = previousTxHash2 elem1 = elem2
      Equations
      Instances For
        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem DY.Example.Ratchet.stateTxHashLabel_eq [HasProofTrace] (transcript : Transcript) (h : 2 List.length transcript) :
          stateTxHashLabel (transcriptToHash transcript) = (stateLabel transcript[0].recipient transcript).join (stateLabel transcript[1].recipient transcript)
          @[instance_reducible]
          Equations
          • One or more equations did not get rendered due to their size.
          Equations
          Instances For
            Equations
            Instances For
              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem DY.Example.Ratchet.labelBeforeEvent_canFlow_labelBeforeTimestamp [HasProofTrace] (l : Label) (me other : Participant) (transcript : Transcript) (i : Nat) (tr : ExecTrace) :
                i Trace.length tr( (k : Bytes), Trace.EventLogged (RatchetEvent.ReceiveUpdate me other transcript k) (Trace.prefix tr i)) → (∀ (i' : Nat), i' < i¬ (k : Bytes), Trace.EventLogged (RatchetEvent.ReceiveUpdate me other transcript k) (Trace.prefix tr i'))(labelBeforeEvent l me other transcript).canFlow (labelBeforeTimestamp l (i - 1)) tr
                @[irreducible]
                noncomputable def DY.Example.Ratchet.minimum.aux (p : NatProp) (i1 i2 : Nat) :
                Equations
                Instances For
                  theorem DY.Example.Ratchet.minimum.aux.thm (p : NatProp) (i1 i2 : Nat) :
                  (∀ (i : Nat), i < i1¬p i)p i2p (aux p i1 i2) ∀ (i : Nat), i < aux p i1 i2¬p i
                  theorem DY.Example.Ratchet.minimum (p : NatProp) (i : Nat) (h : p i) :
                  (min : Nat), p min ∀ (i' : Nat), i' < min¬p i'
                  theorem DY.Example.Ratchet.event_minimum_prefix [HasProofTrace] {EventT : Type} [ExecTraceTypes.Has (ProtocolEvent.ExecEntryT EventT)] (pred : EventTProp) (tr : ExecTrace) :
                  ( (ev : EventT), pred ev Trace.EventLogged ev tr) → (i : Nat), (ev' : EventT), pred ev' Trace.EventLoggedAt ev' i tr Trace.EventLogged ev' (Trace.prefix tr (i + 1)) ∀ (i' : Nat) (ev'' : EventT), i' ipred ev''¬Trace.EventLogged ev'' (Trace.prefix tr i')
                  Equations
                  Instances For
                    Equations
                    Instances For
                      Equations
                      Instances For
                        theorem DY.Example.Ratchet.keyLabelMyTurn_eq [HasProofTrace] (me other : Participant) (transcript : Transcript) :
                        2 List.length transcriptkeyLabelMyTurn me other transcript = ((stateLabel me transcript).join (stateLabel other transcript)).join ((keyLabelOtherTurn me other (List.tail transcript)).meet ((stateLabel me (List.tail transcript)).join ((stateLabel other transcript).join (labelBeforeEvent (ltkLabel other) me other transcript))))
                        theorem DY.Example.Ratchet.keyLabelOtherTurn_eq [HasProofTrace] (me other : Participant) (transcript : Transcript) :
                        2 List.length transcriptkeyLabelOtherTurn me other transcript = ((stateLabel me transcript).join (stateLabel other transcript)).join ((keyLabelMyTurn me other (List.tail transcript)).meet ((stateLabel me transcript).join ((stateLabel other (List.tail transcript)).join (labelBeforeEvent (ltkLabel other) me other (List.tail transcript)))))
                        @[instance_reducible]
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Equations
                        Instances For
                          @[instance_reducible]
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances
                            @[instance_reducible]
                            Equations
                            • One or more equations did not get rendered due to their size.
                            @[instance_reducible]
                            Equations
                            • One or more equations did not get rendered due to their size.
                            @[instance_reducible]
                            Equations
                            • One or more equations did not get rendered due to their size.
                            @[instance_reducible]
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances
                              instance DY.Example.Ratchet.computeTranscriptHash.spec [HasTraceInvariant] (previousTranscriptHash : Bytes) (elem : TranscriptElement) :
                              HoareTriplePure (computeTranscriptHash previousTranscriptHash elem) (fun (tr : ProofTrace) => previousTranscriptHash.Publishable tr elem.dhPk.Publishable tr) fun (res : Bytes) (tr : ProofTrace) => res.Publishable tr
                              instance DY.Example.Ratchet.initiate.spec [HasTraceInvariant] (me other : Participant) (mySigKeyHandle : Nat) :
                              HoareTriple (initiate me other mySigKeyHandle) (fun (x : ProofTrace) => True) fun (x : Nat × Nat) (x_1 : ProofTrace) => True
                              instance DY.Example.Ratchet.processInitiate.spec [HasTraceInvariant] (me other : Participant) (otherVerifKeyHandle msgHandle : Nat) :
                              HoareTriple (processInitiate me other otherVerifKeyHandle msgHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True
                              instance DY.Example.Ratchet.sendUpdate.spec [HasTraceInvariant] (me : Participant) (mySigKeyHandle stHandle : Nat) :
                              HoareTriple (sendUpdate me mySigKeyHandle stHandle) (fun (x : ProofTrace) => True) fun (x : Nat × Nat) (x_1 : ProofTrace) => True
                              theorem DY.Example.Ratchet.eventLogged_receiveUpdate_dhPk_label [HasTraceInvariant] (me recipient : Participant) (transcript : Transcript) (k : Bytes) (tr : ProofTrace) (h_transcript : 2 List.length transcript) :
                              Trace.Invariant trTrace.EventLogged (RatchetEvent.ReceiveUpdate me recipient transcript k) (Trace.erase tr)((stateLabel recipient transcript).join (labelBeforeEvent (ltkLabel recipient) me recipient transcript)).canFlow ((List.head transcript ).dhPk.dhSkLabel tr) (Trace.erase tr)
                              theorem DY.Example.Ratchet.eventLogged_receiveUpdate_key_label [HasTraceInvariant] (me recipient : Participant) (transcript : Transcript) (k : Bytes) (tr : ProofTrace) :
                              2 List.length transcriptTrace.Invariant trTrace.EventLogged (RatchetEvent.ReceiveUpdate me recipient transcript k) (Trace.erase tr)(keyLabelMyTurn me recipient transcript).canFlow (k.label tr) (Trace.erase tr)
                              instance DY.Example.Ratchet.processUpdate.spec [HasTraceInvariant] (me : Participant) (otherVerifKeyHandle stHandle msgHandle : Nat) :
                              HoareTriple (processUpdate me otherVerifKeyHandle stHandle msgHandle) (fun (x : ProofTrace) => True) fun (x : Nat) (x_1 : ProofTrace) => True