Check if a
(timeout-possiblep val systate) → yes/no
The
The validator must be a correct one.
The timer of the validator must be running.
Function:
(defun timeout-possiblep (val systate) (declare (xargs :guard (and (addressp val) (system-statep systate)))) (let ((__function__ 'timeout-possiblep)) (declare (ignorable __function__)) (b* (((unless (in (address-fix val) (correct-addresses systate))) nil) ((validator-state vstate) (get-validator-state val systate))) (timer-case vstate.timer :running))))
Theorem:
(defthm booleanp-of-timeout-possiblep (b* ((yes/no (timeout-possiblep val systate))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm timeout-possiblep-of-address-fix-val (equal (timeout-possiblep (address-fix val) systate) (timeout-possiblep val systate)))
Theorem:
(defthm timeout-possiblep-address-equiv-congruence-on-val (implies (address-equiv val val-equiv) (equal (timeout-possiblep val systate) (timeout-possiblep val-equiv systate))) :rule-classes :congruence)
Theorem:
(defthm timeout-possiblep-of-system-state-fix-systate (equal (timeout-possiblep val (system-state-fix systate)) (timeout-possiblep val systate)))
Theorem:
(defthm timeout-possiblep-system-state-equiv-congruence-on-systate (implies (system-state-equiv systate systate-equiv) (equal (timeout-possiblep val systate) (timeout-possiblep val systate-equiv))) :rule-classes :congruence)