{motive : Std.Barrier → Sort u} →
  ((lock : Std.Mutex Std.BarrierState✝) →
      (cvar : Std.Condvar) → (numThreads : ℕ) → motive { lock := lock, cvar := cvar, numThreads := numThreads }) →
    (t : Std.Barrier) → motive t