Sequential equivalence of aignets on a particular initial state
See seq-equiv. This variant additionally takes the initial state of each aignet as an argument, and requires that they always produce the same outputs when run starting at that initial state.
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Definition:
(defabsstobj initsts2 :foundation acl2::bitarr$c :recognizer (initsts2p :logic acl2::bitarr$ap :exec acl2::bitarr$cp) :creator (create-initsts2 :logic acl2::create-bitarr$a :exec acl2::create-bitarr$c) :exports ((initsts2s-length :logic acl2::bits$a-length :exec acl2::bits$c-length :protect nil) (get-initsts2 :logic acl2::bits$ai :exec acl2::bits$ci :protect nil) (set-initsts2 :logic acl2::update-bits$ai :exec acl2::update-bits$ci :protect nil) (resize-initsts2s :logic acl2::resize-bits$a :exec acl2::resize-bits$c :protect nil)) :congruent-to bitarr)
Theorem:
(defthm seq-equiv-init-necc (implies (seq-equiv-init aignet initsts aignet2 initsts2) (equal (equal (output-eval-seq k n inframes initsts aignet) (output-eval-seq k n inframes initsts2 aignet2)) t)))
Theorem:
(defthm comb-equiv-implies-seq-equiv-init (implies (comb-equiv aignet aignet2) (seq-equiv-init aignet initvals aignet2 initvals)))