Check if a system state is an initial one.
(system-initp systate) → yes/no
Every correct validator must be in the initial state, and the network must be empty (no messages have been sent yet).
Furthermore, the network is initially empty.
Function:
(defun system-initp (systate) (declare (xargs :guard (system-statep systate))) (let ((__function__ 'system-initp)) (declare (ignorable __function__)) (and (system-validators-initp systate) (emptyp (get-network-state systate)))))
Theorem:
(defthm booleanp-of-system-initp (b* ((yes/no (system-initp systate))) (booleanp yes/no)) :rule-classes :rewrite)
Theorem:
(defthm system-initp-of-system-state-fix-systate (equal (system-initp (system-state-fix systate)) (system-initp systate)))
Theorem:
(defthm system-initp-system-state-equiv-congruence-on-systate (implies (system-state-equiv systate systate-equiv) (equal (system-initp systate) (system-initp systate-equiv))) :rule-classes :congruence)