# temporal.rel — the affine algebra of time, as data. # # An Instant is a POINT and a Duration is a DISPLACEMENT. Every rule below # follows from that, and the set is closed because there are only two kinds of # thing: you may add a displacement to a point, subtract two points to get a # displacement, and combine displacements. Nothing else is meaningful. # # The emitter records which illegal combination it saw; this file says what that # means and how to say it. # # means instant_plus_instant means Instant + Instant is not allowed — a point plus a point is not a point. Subtract them for a Duration, or add a Duration. duration_plus_int means Duration + Int is not allowed — an Int carries no unit. Use duration_seconds(n) or N.seconds. duration_minus_int means Duration - Int is not allowed — an Int carries no unit. instant_cmp_duration means Instant < Duration is not allowed — a point and a displacement are not on the same scale. duration_cmp_instant means Duration < Instant is not allowed — a displacement and a point are not on the same scale. caltime_plus_caltime means CalendarTime + CalendarTime is not allowed — a CalendarTime already projects an Instant under a Calendar. Use cal_to_instant first.