Formal Learning Theory Kernel: Blueprint v1

A.3 Learnability predicates

Listing A.5: PAC learnability (Criterion/PAC.lean)
def PACLearnable (X : Type u) [MeasurableSpace X]
    (C : ConceptClass X Bool) : Prop :=
  exists (L : BatchLearner X Bool) (mf : R -> R -> N),
    forall (e d : R), 0 < e -> 0 < d ->
      forall (D : Measure X), IsProbabilityMeasure D ->
        forall (c : Concept X Bool), c (*@$\in$@*) C ->
          let m := mf e d
          Measure.pi (fun _ : Fin m => D)
            { xs : Fin m -> X |
              D { x | L.learn (fun i => (xs i, c (xs i))) x (*@$\neq$@*) c x }
                (*@$\leq$@*) ENNReal.ofReal e }
            (*@$\geq$@*) ENNReal.ofReal (1 - d)
Listing A.6: Online learnability (Criterion/Online.lean)
def OnlineLearnable (X : Type u) (Y : Type v) [DecidableEq Y]
    (C : ConceptClass X Y) : Prop :=
  exists (M : N), MistakeBounded X Y C M
Listing A.7: EX-learnability, Gold-style (Criterion/Gold.lean)
def EXLearnable (X : Type u) (C : ConceptClass X Bool) : Prop :=
  exists (L : GoldLearner X Bool),
    forall (c : Concept X Bool), c (*@$\in$@*) C ->
      forall (T : TextPresentation X c),
        exists (t0 : N), forall (t : N), t (*@$\geq$@*) t0 ->
          L.conjecture (dataUpTo T.toDataStream t) = c