Documentation

DY.Trace.Invariant

class DY.ErasableProofEntry (ExecEntryT : outParam Type) (ProofEntryT : Type) :
  • erase : ProofEntryTExecEntryT
Instances
    @[reducible, inline]
    abbrev DY.ErasableProofEntry.default (ExecEntryT : Type) :
    ErasableProofEntry ExecEntryT ExecEntryT
    Equations
    Instances For
      class DY.ExecEntryAssociatedWithProofEntry (ExecEntryT : Type) (ProofEntryT : outParam Type) :
        Instances
          theorem DY.Trace.erase_le [ExecTraceTypes] [ProofTraceTypes] (tr1 tr2 : ProofTrace) :
          tr1 tr2erase tr1 erase tr2
          theorem DY.Trace.erase_at [ExecTraceTypes] [ProofTraceTypes] (tr : ProofTrace) (i : Nat) (h_i : i < length (erase tr)) :
          «at» (erase tr) i h_i = («at» tr i ).erase
          class DY.ProofTraceTypes.Has [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT : outParam Type} (ProofEntryT : Type) [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] extends DY.TraceEntryHas ProofEntryT DY.ProofTrace.Entry :
          Instances
            class DY.ProofTraceTypes.HasStep {ExecEntryT1 ExecEntryT2 : outParam Type} (ProofEntryT1 : Type) (ProofEntryT2 : semiOutParam Type) [ErasableProofEntry ExecEntryT1 ProofEntryT1] [ErasableProofEntry ExecEntryT2 ProofEntryT2] [ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2] :
            Instances
              @[instance_reducible]
              Equations
              • One or more equations did not get rendered due to their size.
              @[instance_reducible]
              instance DY.instProofTraceTypesHasStep [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT1 ExecEntryT2 : Type} (ProofEntryT1 ProofEntryT2 : Type) [ErasableProofEntry ExecEntryT1 ProofEntryT1] [ErasableProofEntry ExecEntryT2 ProofEntryT2] [ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2] [ProofTraceTypes.HasStep ProofEntryT1 ProofEntryT2] [ExecTraceTypes.Has ExecEntryT2] [ProofTraceTypes.Has ProofEntryT2] :
              ProofTraceTypes.Has ProofEntryT1
              Equations
              • One or more equations did not get rendered due to their size.
              structure DY.ProofTraceTypes.combine {n : Nat} (ProofTypes : Fin nType) :
              • id : Fin n
              • entry : ProofTypes self.id
              Instances For
                @[instance_reducible]
                instance DY.instErasableProofEntryCombine {n : Nat} (ExecTypes ProofTypes : Fin nType) [(id : Fin n) → ErasableProofEntry (ExecTypes id) (ProofTypes id)] :
                Equations
                • One or more equations did not get rendered due to their size.
                @[instance_reducible]
                instance DY.instProofTraceTypesCombineHasStep {n : Nat} (ExecTypes ProofTypes : Fin nType) [(id : Fin n) → ErasableProofEntry (ExecTypes id) (ProofTypes id)] (id : Fin n) :
                Equations
                • One or more equations did not get rendered due to their size.
                theorem DY.ProofTrace.Entry.erase_eq_imp_exists [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT ProofEntryT : Type} [ErasableProofEntry ExecEntryT ProofEntryT] [ExecEntryAssociatedWithProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] {entry : Entry} {result : ExecEntryT} :
                entry.erase = TraceEntryHas.inj result (result' : ProofEntryT), entry = TraceEntryHas.inj result' ErasableProofEntry.erase result' = result
                theorem DY.ProofTrace.Entry.at?_eq_none_erase [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT ProofEntryT : Type} [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] (tr : ProofTrace) (i : Nat) :
                theorem DY.ProofTrace.Entry.at?_eq_some_erase [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT ProofEntryT : Type} [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] (tr : ProofTrace) (i : Nat) (entry : ProofEntryT) :
                theorem DY.Trace.append_erase [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT ProofEntryT : Type} [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] (tr : ProofTrace) (entry : ProofEntryT) :
                class DY.SubTraceInvariant [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT : outParam Type} (ProofEntryT : Type) [ErasableProofEntry ExecEntryT ProofEntryT] :
                Instances
                  class DY.TraceInvariant.Has [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] {ExecEntryT : outParam Type} (ProofEntryT : Type) [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] [SubTraceInvariant ProofEntryT] :
                  Instances
                    class DY.TraceInvariant.HasStep [ExecTraceTypes] [ProofTraceTypes] {ExecEntryT1 ExecEntryT2 : outParam Type} (ProofEntryT1 ProofEntryT2 : Type) [ErasableProofEntry ExecEntryT1 ProofEntryT1] [ErasableProofEntry ExecEntryT2 ProofEntryT2] [ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2] [ProofTraceTypes.HasStep ProofEntryT1 ProofEntryT2] [SubTraceInvariant ProofEntryT1] [SubTraceInvariant ProofEntryT2] :
                    Instances
                      instance DY.instTraceInvariantHasStep [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] {ExecEntryT1 ProofEntryT1 ExecEntryT2 ProofEntryT2 : Type} [ErasableProofEntry ExecEntryT1 ProofEntryT1] [ErasableProofEntry ExecEntryT2 ProofEntryT2] [ExecTraceTypes.HasStep ExecEntryT1 ExecEntryT2] [ProofTraceTypes.HasStep ProofEntryT1 ProofEntryT2] [ExecTraceTypes.Has ExecEntryT2] [ProofTraceTypes.Has ProofEntryT2] [SubTraceInvariant ProofEntryT1] [SubTraceInvariant ProofEntryT2] [TraceInvariant.HasStep ProofEntryT1 ProofEntryT2] [TraceInvariant.Has ProofEntryT2] :
                      TraceInvariant.Has ProofEntryT1
                      @[instance_reducible]
                      instance DY.SubTraceInvariant.combine [ExecTraceTypes] [ProofTraceTypes] {n : Nat} {ExecTypes ProofTypes : Fin nType} [(id : Fin n) → ErasableProofEntry (ExecTypes id) (ProofTypes id)] [(id : Fin n) → SubTraceInvariant (ProofTypes id)] :
                      Equations
                      • One or more equations did not get rendered due to their size.
                      instance DY.instTraceInvariantCombineHasStep [ExecTraceTypes] [ProofTraceTypes] {n : Nat} {ExecTypes : Fin nType} (ProofTypes : Fin nType) [(id : Fin n) → ErasableProofEntry (ExecTypes id) (ProofTypes id)] [(id : Fin n) → SubTraceInvariant (ProofTypes id)] (id : Fin n) :
                      TraceInvariant.HasStep (ProofTypes id) (ProofTraceTypes.combine ProofTypes)
                      theorem DY.Trace.invariant_append [ExecTraceTypes] [ProofTraceTypes] [TraceInvariant] {ExecEntryT ProofEntryT : Type} [ErasableProofEntry ExecEntryT ProofEntryT] [ExecTraceTypes.Has ExecEntryT] [ProofTraceTypes.Has ProofEntryT] [SubTraceInvariant ProofEntryT] [TraceInvariant.Has ProofEntryT] (tr : ProofTrace) (entry : ProofEntryT) :