Preservation of unambiguity by certain operations on expressions.
Theorem:
(defthm expr-unambp-of-apply-pre-inc/dec-ops (implies (expr-unambp expr) (expr-unambp (apply-pre-inc/dec-ops inc/dec expr))))
Theorem:
(defthm expr-unambp-of-apply-post-inc/dec-ops (implies (expr-unambp expr) (expr-unambp (apply-post-inc/dec-ops expr inc/dec))))
Theorem:
(defthm expr-list-unambp-of-expr-to-asg-expr-list (implies (expr-unambp expr) (expr-list-unambp (expr-to-asg-expr-list expr))))
Theorem:
(defthm expr-unambp-of-check-expr-mul (b* (((mv yes/no arg1 arg2) (check-expr-mul expr))) (implies (and (expr-unambp expr) yes/no) (and (expr-unambp arg1) (expr-unambp arg2)))))
Theorem:
(defthm expr-unambp-of-check-expr-binary (b* (((mv yes/no & arg1 arg2) (check-expr-binary expr))) (implies (and (expr-unambp expr) yes/no) (and (expr-unambp arg1) (expr-unambp arg2)))))