Как следствие вот этого.
Собственно задачи (просто идентификатор и содержимое): T(odos) = ID x CONTENT, где ID = Int, CONTENT = String.
То есть, forall t in T: t = (id, content), id in ID, content in CONTENT.
Отложенные задачи (это так называемый стек задач - общая куча перспективных дел): D(eferred) = T x {0,1}.
forall d in D: d = (t, 0|1).
Завершённые задачи (задача завершена, если 1 + указывается время, когда она таковой стала): C(omplited) = T x {0,1} x TIME, TIME - время.
forall c in C: c = (t, 0|1, time).
Запомненные (задачи описываются крайней датой, наступление которой трактуется как deadline): R(emember) = T x {0,1} x TIME
forall r in R: r = (t, 0|1, time).
Собственно задачи (просто идентификатор и содержимое): T(odos) = ID x CONTENT, где ID = Int, CONTENT = String.
То есть, forall t in T: t = (id, content), id in ID, content in CONTENT.
Отложенные задачи (это так называемый стек задач - общая куча перспективных дел): D(eferred) = T x {0,1}.
forall d in D: d = (t, 0|1).
Завершённые задачи (задача завершена, если 1 + указывается время, когда она таковой стала): C(omplited) = T x {0,1} x TIME, TIME - время.
forall c in C: c = (t, 0|1, time).
Запомненные (задачи описываются крайней датой, наступление которой трактуется как deadline): R(emember) = T x {0,1} x TIME
forall r in R: r = (t, 0|1, time).