32
32
(include-book "../util/defs")
33
(include-book "centaur/fty/deftypes" :dir :system)
33
34
(local (include-book "misc/assert" :dir :system))
34
35
(local (include-book "../util/arithmetic"))
35
36
(local (include-book "../util/position"))
829
830
(assert! (not (vl-emodwire-p 'vl::foo))))))
833
(deflist vl-emodwirelist-p (x)
833
(define vl-emodwire-fix ((x vl-emodwire-p))
834
:returns (x-prime vl-emodwire-p)
837
(mbe :logic (if (vl-emodwire-p x) x 'acl2::bad-default-emodwire)
840
(defthm vl-emodwire-fix-when-vl-emodwire-p
841
(implies (vl-emodwire-p x)
842
(equal (vl-emodwire-fix x) x)))
844
(fty::deffixtype vl-emodwire :pred vl-emodwire-p :fix vl-emodwire-fix
845
:equiv vl-emodwire-equiv :define t))
848
(fty::deflist vl-emodwirelist :elt-type vl-emodwire
835
849
:elementp-of-nil nil
836
850
:parents (exploding-vectors)
838
((defthm symbol-listp-when-vl-emodwirelist-p
839
(implies (vl-emodwirelist-p x)
840
(equal (symbol-listp x)
843
(defthm member-of-nil-when-vl-emodwirelist-p
844
(implies (vl-emodwirelist-p x)
845
(not (member-equal nil x))))))
848
(deflist vl-emodwirelistlist-p (x)
849
(vl-emodwirelist-p x)
852
(local (in-theory (enable vl-emodwirelist-p)))
853
(defthm symbol-listp-when-vl-emodwirelist-p
854
(implies (vl-emodwirelist-p x)
855
(equal (symbol-listp x)
858
(defthm member-of-nil-when-vl-emodwirelist-p
859
(implies (vl-emodwirelist-p x)
860
(not (member-equal nil x)))))
863
(fty::deflist vl-emodwirelistlist :elt-type vl-emodwirelist
851
864
:elementp-of-nil t
852
865
:parents (exploding-vectors)
853
866
:short "A list of @(see vl-emodwire-p) lists."
855
868
:long "<p>These are notably used as the @(':i') and @(':o') patterns for
856
869
modules; see @(see modinsts-to-eoccs) for details.</p>"
859
((defthm vl-emodwirelist-p-of-flatten
860
(implies (vl-emodwirelistlist-p x)
861
(vl-emodwirelist-p (flatten x))))))
872
(local (in-theory (enable vl-emodwirelistlist-p)))
873
(defthm vl-emodwirelist-p-of-flatten
874
(implies (vl-emodwirelistlist-p x)
875
(vl-emodwirelist-p (flatten x)))))
864
878
(defsection vl-emodwire