Propagate an isomorphism from a set of isomorphically transformed functions to events that use them.
(propagate-iso isomorphism-name-or-names fn-iso-specs &key :first-event ; required name of an event :last-event ; required name of an event :dont-verify-guards ; default nil :enabled ; default nil :iso-rules ; default nil :osi-rules ; default nil :hints-map ; default nil )
A single name or a list of names of isomorphisms defined using defiso.
A list of functions associated with information about their isomorphics translations and signatures. Each element of the list has the form:
(fn iso-fn fn-->iso-fn--thm iso-fn-->fn--thm arg-sig => result-sig)where
iso-fn is the isomorphic version offn andfn-->iso-fn--thm is a theorem for rewritingfn toiso-fn , and andiso-fn-->fn--thm is a theorem for rewritingiso-fn tofn .arg-sig gives the signature of the argument list offn with respect to the isomorphism, i.e. if an argument offn is of one of the isomorphism types (predicate) then the corresponding element of the signature is that predicate, otherwise it is* . Similarly, iffn returns a single value then it is* or the name of an isomorphism predicate, or if it returns multiple values then it is a list of such values.
These give the first and last event that
propagate-iso considers. Functions definitions and theorems are ignored if they do not reference any of the functions infn-iso-specs or any of the functions for whichpropagate-iso has already generated an isomorphic version.
The remaining options are only useful in the cases where the hints generated by
T means do not verify guards of any of the generated events.
A list of runes to use in proofs to add to the lists that
propagate-iso determines to be appropriate.
A list of runes to use in proofs for theorems where
propagate-iso is using a strategy that transforms old functions into new functions.
A list of runes to use in proofs for theorems where
propagate-iso is using a strategy that transforms new functions into old functions.
Used to override or augment the hints generated by
propagate-iso