Changelog for cpsa-3.4.0

2017-09-15 John D. Ramsdell <> * src/CPSA/DiffieHellman/Algebra.hs (unifyTerms): Added calls to chase before calling unifyBase which prevents a failure in the occurs check. 2017-09-14 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (tryPerm): Add missing inverse permutation to second checkOrigs in tryPerm. 2017-09-12 John D. Ramsdell <> * cpsa.cabal: Removed CPSA.Lib.CPSA globally and removed unnecessary dependencies. 2017-08-30 John D. Ramsdell <> * cpsa.cabal: Added missing modules and source repository location. * src/CPSA/Lib/DebugLibrary.hs (zi): Fixed erroneous parameters in Instance. 2017-08-28 John D. Ramsdell <> * src/CPSA/Lib/Cohort.hs (solved): Fixed condition 5. It was using ct instead of ct'. 2017-06-30 John D. Ramsdell <> * src/CPSA/Lib/Cohort.hs (transformingNode, maybeAug, nextNode): Rewrote code so that it no longer fails the ambiguity check. 2017-05-26 John D. Ramsdell <> * src/CPSA/DiffieHellman/Algebra.hs (mkInitMatchDecis): Ensure initial distinctions to not include fresh variables. (partition): Do not move variables of sort expn to lhs, even if they are freshly generated. 2017-05-16 John D. Ramsdell <> * src/CPSA/DiffieHellman/Algebra.hs (displaySubst): Removed erroneous substitution to fix substitution displaying. 2017-05-10 John D. Ramsdell <> * src/CPSA/Strand.hs (findReplacement, permutations): Merge generators so that no variable in a term has an identifier that is greater than or equal to the generator. 2017-02-02 John D. Ramsdell <> * src/CPSA/Basic/Algebra.hs (loadInvk): Added support for reading (invk (privk ...)) and (invk (invk ...)). 2017-01-17 John D. Ramsdell <> * src/CPSA/SAS/SAS.hs (strandForm): Remove conjoin and use concatMap when creating a characteristic skeleton. 2017-01-09 John D. Ramsdell <> * src/CPSA/Lib/Loader.hs (loadPrimary): Removed generator parameter that was not used. 2016-12-21 John D. Ramsdell <> * src/CPSA/Lib/Cohort.hs (solved): In Condition 4, applied substitutions to the encryption keys before testing for derivability. 2016-10-04 John D. Ramsdell <> * src/CPSA/Basic/Algebra.hs (matchRenaming): Make isomorphism check work in presence of asymmetric keys. 2016-09-30 John D. Ramsdell <> * src/CPSA/Lib/Algebra.hs: Added isObtainedVar for variables of sort expr in the Diffie-Hellman algebra. 2016-08-12 John D. Ramsdell <> * src/CPSA/SAS/SAS.hs (form): Changed "defsas" to "defgoal" as the keyword for a generated shape analysis sentence. This makes the program compatible with its documentation. 2016-06-22 John D. Ramsdell <> * cpsa.cabal (Extension): Add allow ambiguous types when compiling with GHC 8.0.0 or later. 2016-06-21 Moses D. Liskov <> * src/CPSA/DiffieHellman/Algebra.hs: Added code to implement the "tag" sort, which quoted string tags belong to. 2016-06-03 Moses D. Liskov <> * doc/examples/IKE_variants.tar.gz: Added this compressed archive of IKEv1 and IKEv2 variant input files. 2016-03-30 John D. Ramsdell <> * src/CPSA/SAS/SAS.hs: Added support for fringe skeletons so that cpassas makes use of depth limited output. When a tree depth limit is exceeded, a fringe labeled skeleton is printed. cpsasas produces a sentence with a right-hand-side that encodes both the shapes and the fringe. Thus, when cpsa is running the a tree depth limit of one, cpsasas computes a cohort analysis sentence. 2016-03-29 John D. Ramsdell <> * src/CPSA/Lib/Reduction.hs (LPreskel): Added a depth field, so that CPSA aborts when the depth of one branch exceeds a bound. * src/CPSA/Lib/Algebra.hs: Added escapeSet to Term class and remove protectors, thus computing the escape set in a more straightforward way. 2015-11-23 John D. Ramsdell <> * src/CPSA/SAS/Main.hs (main): Changed start up so that the herald is read and used to find the correct algebra for further processing. 2015-10-02 John D. Ramsdell <> * doc/{index,cpsauser}.html: Added width limit of 48em. 2015-07-09 John D. Ramsdell <> * src/CPSA/Graph/ExpandedView.hs (purgeTraces): By default, the graph program now does not show traces in skeletons. Added --show-traces option to the graph program, which restores the previous behavior and traces are displayed in skeletons. 2015-07-02 John D. Ramsdell <> * src/CPSA/Lib/Algebra.hs: Added constituent to the algebra interface and the algebras. An atom is a constituent of a term if the atom is among the set of atoms required to construct the term. Changed occursIn so that it just applies to variables. 2015-07-01 John D. Ramsdell <> * src/CPSA/{Basic,DiffieHellman}/Algebra.hs (occursIn): Restricted first argument of occursIn to variables and atoms and corrected the implementation. 2015-06-30 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.2.2. 2015-06-25 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (geq): Removed dynamic role specific test because it erroneously reports violations. The existing static role specific test correctly does the job. 2015-05-26 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.2.1. * src/CPSA/DiffieHellman/Algebra.hs (displayTerm): Made it so that CPSA prints each bltk atoms in a canonical form so that the graph program draws solid arrows when it should. 2015-04-27 John D. Ramsdell <> * src/CPSA/Lib/Loader.hs (ReturnFail): Added ReturnFail Monad so that fail is correctly handled. Added Functor and Applicative instance to support GHC 7.10 base library. 2015-04-20 John D. Ramsdell <> * src/CPSA/Lib/Characteristic.hs (mkDcls): Fixed tag for non-orig and pen-non-orig. 2015-04-10 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (mkListener): The role used for listener strands is now the one stored in the protocol. It has a single variable x of sort mesg as its set of variables. This change enables satisfaction checking on skeleton that include listeners. 2015-04-07 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (toSkeleton): Removed hulling to the process of converting an input preskeleton into a skeleton as it causes bugs in printing. * Imported CPSA2's implementation of goals and expunged support for subgoals. 2015-03-27 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (toSkeleton): Added hulling to the process of converting an input preskeleton into a skeleton. 2015-03-25 John D. Ramsdell <> * src/CPSA/Lib/Goal.hs: Added uniq to goal language. 2015-03-17 John D. Ramsdell <> * src/CPSA/SAS/SAS.hs (form): Generate a defsas form rather than a naked sentence. * src/CPSA/Lib/Loader.hs (loadPrimary): Renamed equals function symbol to =. 2015-03-05 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.2.0. 2015-02-20 John D. Ramsdell <> * Added support for subgoals within point-of-view skeletons. The subgoals are evaluated for each shape, and (satisfies-a-subgoal) is added to a shape when it satisfies one of the subgoals. 2014-12-11 John D. Ramsdell <> * src/CPSA/Lib/Entry.hs (defaultOptions): Changed the default strand bound to 12. 2014-11-15 John D. Ramsdell <> * src/CPSA/SAS/SAS.hs: Changed the language used for a shape analysis sentence to be node-oriented. 2014-11-07 John D. Ramsdell <> * src/CPSA/Lib/Loader.hs (loadPriorities): Allowed priority declarations on state synchronization nodes other than initiatizers. 2014-11-07 John D. Ramsdell <> * src/CPSA/Lib/Cohort.hs (explainable): Added the nodes reachable by strand succession so that a transition can be explained by a previous transition within a strand. 2014-10-31 John D. Ramsdell <> * Changed the name of the logic producing program to cpsa3sas. 2014-09-01 John D. Ramsdell <> * src/CPSA/Lib/Strand.hs (noStateSplit): An observer node should have at most one transition node after it too. 2014-08-31 John D. Ramsdell <> * src/CPSA/Lib/State.hs: Made labels optional. Use "tran" for state synchronization events with labels, and "sync" for ones without. 2014-08-29 John D. Ramsdell <> * src/CPSA/Lib/*.hs: Added support for analyzing protocols with state. A state synchronization event sync was added to the events that can occur in a trace, along with a new method for state-based augmentation. An example using sync events is in tst/envelope.scm. 2014-08-26 John D. Ramsdell <> * cpsa3.cabal: Removed cpsaparameters program. 2014-08-25 John D. Ramsdell <> * src/ Added the skeleton split program that copies the skeletons in a CPSA source file into separate files. 2014-08-23 John D. Ramsdell <> * src/ (load): Added a reader in Python for JSON produced by CPSA's pretty printer program cpsa3pp -j. 2014-08-22 John D. Ramsdell <> * src/CPSA/JSON/Main.hs: Added the program cpsa3json that translates JSON encoded CPSA into CPSA S-Expressions. It expects the JSON input to follow the conventions of the JSON produced by the cpsapp program when given the -j option. * src/CPSA/Lib/SExpr.hs (numOrSym): Enabled parsing a number with a plus sign by removing the sign before translating the string of digits into a number. 2014-06-12 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.0.3. 2014-02-06 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.0.2. 2013-12-14 John D. Ramsdell <> * cpsa3.cabal (Version): Tagged as 3.0.1. * cpsa3.cabal (Extra-Source-Files): Added more DH tests 2013-03-12 John D. Ramsdell <> * src/CPET/Annotations/Annotations.hs (obligation): Replaced an irrefutable pattern that raised an exception with a maybeToList. 2013-02-21 John D. Ramsdell <> * src/CPET/DiffieHellman/Algebra.hs: Added the Diffie-Hellman algebra based on Abelian groups. * src/CPET/Basic/Algebra.hs: Removed support for GHC 6.x. 2013-02-06 John D. Ramsdell <> * cpet.cabal (Version): Tagged as 0.0.0.