Case-sensitive string equivalence test.
(streqv x y) determines if
See also str::istreqv for a case-insensitive alternative.
Function:
(defun streqv$inline (x y) (declare (xargs :guard t)) (equal (str-fix x) (str-fix y)))
Theorem:
(defthm streqv-is-an-equivalence (and (booleanp (streqv x y)) (streqv x x) (implies (streqv x y) (streqv y x)) (implies (and (streqv x y) (streqv y z)) (streqv x z))) :rule-classes (:equivalence))
Theorem:
(defthm streqv-of-str-fix (streqv (str-fix x) x))
Theorem:
(defthm streqv-implies-equal-str-fix-1 (implies (streqv x x-equiv) (equal (str-fix x) (str-fix x-equiv))) :rule-classes (:congruence))
Theorem:
(defthm streqv-implies-equal-char-1 (implies (streqv x x-equiv) (equal (char x n) (char x-equiv n))) :rule-classes (:congruence))
Theorem:
(defthm streqv-implies-equal-string-append-1 (implies (streqv x x-equiv) (equal (string-append x y) (string-append x-equiv y))) :rule-classes (:congruence))
Theorem:
(defthm streqv-implies-equal-string-append-2 (implies (streqv y y-equiv) (equal (string-append x y) (string-append x y-equiv))) :rule-classes (:congruence))