let rec next_event_ae is_strong is_forall n0 n1 a b =
  if n0 > n1 then raise (Invalid_argument "Ltl.next_event_ae: First count is greater than second.");
  if n0 = n1 then
    next_event_repeat is_strong n0 a b
  else
    (if is_forall then and_ else or_) (next_event_repeat is_strong n0 a b) (next_event_ae is_strong is_forall (n0 + 1) n1 a b)