├── .gitignore ├── Applications ├── Handwritten │ └── Lisp │ │ ├── CompactMemory.lisp │ │ ├── MemoryManagement.lisp │ │ ├── README │ │ ├── cmucl-patch.lisp │ │ ├── exit-on-errors.lisp │ │ ├── load-utilities.lisp │ │ ├── memory-management.lisp │ │ ├── meta-slang-runtime.lisp │ │ ├── save-image.lisp │ │ ├── sbcl-patch.lisp │ │ └── test-harness.lisp └── Specware │ ├── CodeGenCommands.sw │ ├── CommandParser.sw │ ├── Handwritten │ └── Lisp │ │ ├── BuildDistribution.lisp │ │ ├── BuildDistribution_ACL.lisp │ │ ├── BuildDistribution_CMUCL.lisp │ │ ├── BuildDistribution_SBCL.lisp │ │ ├── BuildPreamble.lisp │ │ ├── CopyFilesForDistribution.lisp │ │ ├── CopyIsaFilesForDistribution.lisp │ │ ├── Preface.lisp │ │ ├── ProvideSpecwareRuntime.lisp │ │ ├── Specware4.lisp │ │ ├── SpecwareVersion.lisp │ │ ├── StartShell.lisp │ │ ├── debug.lisp │ │ ├── pprint-splaymap.lisp │ │ ├── pprint-terms.lisp │ │ ├── show-dirs.lisp │ │ ├── sw-shell.lisp │ │ ├── toplevel.lisp │ │ └── transform-shell.lisp │ ├── ProverCommands.sw │ ├── Specware4.sw │ ├── SpecwareCommands.sw │ ├── SpecwareLispFiles.tgz │ ├── SpecwareShell.sw │ ├── SystemCommands.sw │ ├── Tests │ ├── Diagrams │ │ └── Test.sw │ └── test-specware4.lisp │ ├── TypedValues.sw │ ├── UI │ └── Emacs │ │ └── Handwritten │ │ └── Lisp │ │ ├── emacs-utils.lisp │ │ ├── refine-compat.lisp │ │ ├── snark-menu.lisp │ │ └── system.lisp │ ├── WizardCommands.sw │ ├── bin │ ├── unix │ │ ├── Bootstrap_Specware │ │ ├── Build_Specware_Dev │ │ ├── Compile_Specware_Lisp │ │ ├── Generate_Specware_Lisp │ │ ├── Prepare_Bootstrap_Image │ │ ├── README.txt │ │ ├── SnapshotSpecwareLispFiles │ │ ├── Test_Specware4 │ │ ├── Test_Specware4_Bug │ │ ├── Test_Specware4_Bugs │ │ ├── Test_Specware4_Subdir │ │ ├── Verify_Specware_Variables │ │ ├── bootstrap │ │ ├── specware-batch.sh │ │ └── specware-xmlprint │ └── windows │ │ ├── README.txt │ │ ├── Run_Emacs.cmd │ │ ├── Set_Environment_Vars.cmd │ │ ├── bootstrap-specware.cmd │ │ ├── build-specware.cmd │ │ ├── compile-specware-lisp.cmd │ │ ├── generate-specware-lisp.cmd │ │ ├── specware-shell.cmd │ │ ├── specware-xmlprint.cmd │ │ └── specware.cmd │ └── lisp │ └── .gitignore ├── Examples ├── ACL2 │ ├── BinaryTree.sw │ ├── DeMorgan.sw │ ├── Demo.sw │ ├── DemoDone.sw │ ├── DemoDone2.sw │ ├── IList.sw │ ├── LeftistTree.sw │ ├── Seq.sw │ └── acl2 │ │ └── Makefile ├── Derivations │ ├── Isort.sw │ └── Msort.sw ├── Misc │ ├── Isa │ │ └── ROOT │ ├── TinyTransformShellTest.sw │ ├── TwoMorphisms.sw │ └── test.sh ├── Morphisms │ ├── Double.sw │ ├── Double2.sw │ ├── Double3.sw │ └── Isa │ │ └── ROOT ├── Specware-Overview │ ├── DC.sw │ ├── DivideAndConquer.sw │ ├── ISort.sw │ ├── Isa │ │ └── ROOT │ ├── MSort.sw │ ├── MergeSort.sw │ ├── bank_account.sw │ ├── bank_account2.sw │ ├── company.sw │ ├── hello_world.sw │ └── locking_monad.sw ├── Transformations │ ├── IsoMorphisms │ │ └── BitBool.sw │ ├── MergeRules │ │ └── simple_examples.sw │ └── Simple │ │ ├── copyOpExample.sw │ │ ├── copySpecExample.sw │ │ └── makeImportingSpecExample.sw ├── Tutorial │ ├── Isa │ │ └── ROOT │ ├── MatchingRefinements.sw │ ├── MatchingSpecs.sw │ ├── MatchingTest.sw │ └── test.sh └── isorec.sw ├── Icons ├── Kestrel.icns ├── KestrelBird.gif ├── KestrelBird.xpm ├── KestrelBird_Specware.png ├── KestrelBird_Specware.xpm ├── S.ico ├── kestrel.png ├── kestrel.ppm ├── kestrel_down.png ├── specware.ico ├── specware_icon.gif ├── specware_icon_trans_1.gif ├── specware_icon_trans_2.gif ├── specware_icon_trans_48.gif ├── specware_logo.gif └── specware_logo.xpm ├── LICENSE ├── Languages ├── ACL2 │ ├── AbstractSyntax.sw │ ├── BaseTypes.sw │ ├── Makefile │ ├── PPAbstractSyntax.sw │ ├── SpecToACL2.sw │ ├── defsum.lisp │ ├── mydefsum.lisp │ ├── specware-book-examples.lisp │ └── specware-book.lisp ├── C │ ├── C.sw │ ├── CFlatten.sw │ ├── CPrint.sw │ ├── CUtils.sw │ ├── PrintCSpec.sw │ └── cgen-distribution-files ├── Grammars │ ├── ContextFree.sw │ ├── NonTerminal.sw │ └── SimplifyRepeats.sw ├── I2L │ ├── CodeGen │ │ └── C │ │ │ ├── CGenOptions.sw │ │ │ └── I2LToC.sw │ └── I2L.sw ├── Java │ ├── Java.sw │ ├── Java7AST.sw │ ├── Java7ExpositionGrammar.sw │ ├── Java7Grammars.sw │ ├── Java7ReferenceGrammar.sw │ └── JavaPrint.sw ├── Lisp │ ├── Lisp.sw │ └── Suppress.sw ├── MetaSlang │ ├── AbstractSyntax │ │ ├── AnnTerm.sw │ │ ├── DeMod.sw │ │ ├── DiffTerm.sw │ │ ├── Equalities.sw │ │ ├── Fold.sw │ │ ├── PathTerm.sw │ │ ├── Printer.sw │ │ ├── PrinterSig.sw │ │ ├── QualifiedId.sw │ │ ├── ScriptLang.sw │ │ ├── SimplePrinter.sw │ │ ├── TermDiscNet.sw │ │ └── TermIndex.sw │ ├── CodeGen │ │ ├── AddMissingFromBase.sw │ │ ├── C │ │ │ ├── GenC.sw │ │ │ ├── PrintAsCUtils.sw │ │ │ ├── PrintSpecAsC.sw │ │ │ ├── PrintTermAsC.sw │ │ │ ├── PrintTypeAsC.sw │ │ │ ├── SliceForC.sw │ │ │ └── SpecToCSpec.sw │ │ ├── CodeGenUtilities.sw │ │ ├── DebuggingSupport.sw │ │ ├── Generic │ │ │ ├── AddEqOps.sw │ │ │ ├── AddTypeConstructors.sw │ │ │ ├── ArityNormalize.sw │ │ │ ├── CodeGenTransforms.sw │ │ │ ├── ConformOpDecls.sw │ │ │ ├── DeconflictUpdates.sw │ │ │ ├── EncapsulateProductArgs.sw │ │ │ ├── EtaExpansion.sw │ │ │ ├── ExpandTypeDefs.sw │ │ │ ├── InstantiateHOFns.sw │ │ │ ├── LambdaLift.sw │ │ │ ├── LanguageMorphism.sw │ │ │ ├── LetWildPatToSeq.sw │ │ │ ├── LiftSequences.sw │ │ │ ├── LiftUnsupportedPatterns.sw │ │ │ ├── Linearize.sw │ │ │ ├── NarrowTypes.sw │ │ │ ├── NormalizeTopLevelLambdas.sw │ │ │ ├── PatternMatch.sw │ │ │ ├── Poly2Mono.sw │ │ │ ├── RecordMerge.sw │ │ │ ├── RemoveCurrying.sw │ │ │ ├── RemoveGeneratedSuffixes.sw │ │ │ ├── ReviseTypesForCodeGen.sw │ │ │ ├── SimplifyForExecution.sw │ │ │ ├── SliceSpec.sw │ │ │ ├── SubstBaseSpecs.sw │ │ │ ├── TypeAllTerms.sw │ │ │ ├── TypeOpInfos.sw │ │ │ └── UnfoldTypeAliases.sw │ │ ├── Handwritten │ │ │ └── Lisp │ │ │ │ ├── OLD │ │ │ │ ├── MetaSlang_to_Simple_rules.lisp │ │ │ │ ├── ms-rules.lisp │ │ │ │ ├── ms-to-simple-rules.lisp │ │ │ │ ├── ms-to-simple.lisp │ │ │ │ ├── ms-to-x-rules.lisp │ │ │ │ └── simple-rules.lisp │ │ │ │ ├── lm-parser-interface.lisp │ │ │ │ ├── lm-rules.lisp │ │ │ │ ├── lm-tokenizer.lisp │ │ │ │ ├── load.lisp │ │ │ │ └── system.lisp │ │ ├── Haskell │ │ │ ├── SliceForHaskell.sw │ │ │ └── SpecToHaskell.sw │ │ ├── I2L │ │ │ └── SpecsToI2L.sw │ │ ├── IdentifyIntTypes.sw │ │ ├── Java │ │ │ ├── Errors.sw │ │ │ ├── IJavaCodeGen.sw │ │ │ ├── JCG.doc │ │ │ ├── Monad.sw │ │ │ ├── README.JavaCodeGen │ │ │ ├── SliceForJava.sw │ │ │ ├── ToJava.sw │ │ │ ├── ToJavaBase.sw │ │ │ ├── ToJavaCoProduct.sw │ │ │ ├── ToJavaHO.sw │ │ │ ├── ToJavaPatternMatch.sw │ │ │ ├── ToJavaProduct.sw │ │ │ ├── ToJavaQuotient.sw │ │ │ ├── ToJavaSpecial.sw │ │ │ ├── ToJavaStatements.sw │ │ │ └── ToJavaSubType.sw │ │ ├── Lisp │ │ │ ├── SliceForLisp.sw │ │ │ └── SpecToLisp.sw │ │ ├── README-compare-Lisp-C-Java.txt │ │ ├── README-organization.txt │ │ └── Stateful │ │ │ ├── AddMutex.sw │ │ │ ├── ChangeToStatefulSemantics.sw │ │ │ ├── Globalize.sw │ │ │ ├── IntroduceSetfs.sw │ │ │ ├── MarkGlobalVars.sw │ │ │ ├── MarkUpdateableUses.sw │ │ │ ├── Setf.sw │ │ │ ├── StatefulUpdates.sw │ │ │ └── StatefulUtilities.sw │ ├── Specs │ │ ├── AnalyzeRecursion.sw │ │ ├── AnnSpec.sw │ │ ├── Categories │ │ │ ├── AsRecord.sw │ │ │ └── Specs.sw │ │ ├── CompressSpec.sw │ │ ├── Elaborate │ │ │ ├── Infix.sw │ │ │ ├── PosSpecToSpec.sw │ │ │ ├── TypeChecker.sw │ │ │ ├── TypeDescriptor.sw │ │ │ ├── TypeToTerm.sw │ │ │ └── Utilities.sw │ │ ├── Environment.sw │ │ ├── Equivalences.sw │ │ ├── ExpandType.sw │ │ ├── MSTerm.sw │ │ ├── Position.sw │ │ ├── Printer.sw │ │ ├── Proof.sw │ │ ├── QualifierMap.sw │ │ ├── QualifierMapAsSTHTable2.sw │ │ ├── SimplePrinter.sw │ │ ├── SpecCalc.sw │ │ ├── StandardSpec.sw │ │ ├── SubtractSpec.sw │ │ ├── TypeObligations.sw │ │ └── Utilities.sw │ └── Transformations │ │ ├── AddDerivativeOps.sw │ │ ├── AddParameter.sw │ │ ├── AddSubtypeChecks.sw │ │ ├── BetaReduceMerges.sw │ │ ├── Coalgebraic.sw │ │ ├── Coercions.sw │ │ ├── CommonSubExpressions.sw │ │ ├── CountTermTypes.sw │ │ ├── CurryUtils.sw │ │ ├── DeModRewriteRules.sw │ │ ├── DefToAxiom.sw │ │ ├── DistinctVariable.sw │ │ ├── EditFunctions.sw │ │ ├── EmptyTypesToSubtypes.sw │ │ ├── ExplicateHiddenAxioms.sw │ │ ├── ExplicateMorphism.sw │ │ ├── HigherOrderMatching.sw │ │ ├── InfoRules.sw │ │ ├── Interpreter.sw │ │ ├── IsoMorphism.sw │ │ ├── LiftPattern.sw │ │ ├── MergeRules.sw │ │ ├── MergeRules │ │ └── MetaProgram.sw │ │ ├── MetaRules.sw │ │ ├── MetaTransform.sw │ │ ├── NameSupply.sw │ │ ├── NormalizeTypes.sw │ │ ├── OldSlice.sw │ │ ├── OpToAxiom.sw │ │ ├── PartialEval.sw │ │ ├── Pragma.sw │ │ ├── ProverPattern.sw │ │ ├── RedundantErrorCorrecting.sw │ │ ├── RemoveQuotient.sw │ │ ├── RenameBound.sw │ │ ├── ReorderArgs.sw │ │ ├── RewriteRules.sw │ │ ├── Rewriter.sw │ │ ├── RuntimeSemanticError.sw │ │ ├── Script.sw │ │ ├── Simple.sw │ │ ├── Simplify.sw │ │ ├── SimplifyIfs.sw │ │ ├── SubtypeElimination.sw │ │ ├── TheoryMorphism.sw │ │ └── TypeToAxiom.sw ├── Snark │ ├── SpecToSnark.sw │ └── SpecToSnarkProperties.sw ├── SpecCalculus │ ├── AbstractSyntax │ │ ├── ASW_Printer.sw │ │ ├── CheckSpec.sw │ │ ├── Printer.sw │ │ ├── SCTerm.sw │ │ ├── ShowData.sw │ │ ├── ShowDeps.sw │ │ ├── ShowImports.sw │ │ ├── ShowUtils.sw │ │ ├── Types.sw │ │ ├── UnitId.sw │ │ └── XMLPrinter.sw │ ├── Parser │ │ ├── Handwritten │ │ │ ├── Lisp │ │ │ │ ├── load.lisp │ │ │ │ ├── parser-interface.lisp │ │ │ │ ├── rules.lisp │ │ │ │ ├── semantics.lisp │ │ │ │ ├── system.lisp │ │ │ │ └── tokenizer.lisp │ │ │ └── TeX │ │ │ │ └── parser-main.tex │ │ ├── Parse.sw │ │ ├── README │ │ └── SCConstructors.sw │ └── Semantics │ │ ├── Bootstrap.sw │ │ ├── Environment.sw │ │ ├── Evaluate │ │ ├── Base.sw │ │ ├── C.sw │ │ ├── Colimit.sw │ │ ├── DiagMorphism.sw │ │ ├── Diagram.sw │ │ ├── Expand.sw │ │ ├── GenAll.sw │ │ ├── Generate.sw │ │ ├── Java.sw │ │ ├── Let.sw │ │ ├── Make.sw │ │ ├── NoOther.sw │ │ ├── Obligations.sw │ │ ├── OpRefine.sw │ │ ├── Print.sw │ │ ├── PrismChoices.sw │ │ ├── ProofCheck.sw │ │ ├── Proofs.sw │ │ ├── Prove.sw │ │ ├── Qualify.sw │ │ ├── Reduce.sw │ │ ├── Signature.sw │ │ ├── Snark.sw │ │ ├── Spec.sw │ │ ├── Spec │ │ │ ├── AccessSpec.sw │ │ │ ├── AddSpecElements.sw │ │ │ ├── CoerceToSpec.sw │ │ │ ├── ComplainIfAmbiguous.sw │ │ │ ├── MergeSpecs.sw │ │ │ └── VarOpCapture.sw │ │ ├── SpecColimit.sw │ │ ├── SpecInterp.sw │ │ ├── SpecMorphism.sw │ │ ├── SpecPrism.sw │ │ ├── SpecPrismSubst.sw │ │ ├── SpecSubst.sw │ │ ├── SpecUnion.sw │ │ ├── Substitute.sw │ │ ├── Term.sw │ │ ├── Transform.sw │ │ ├── Translate.sw │ │ ├── UnitId.sw │ │ └── UnitId │ │ │ └── Utilities.sw │ │ ├── Exception.sw │ │ ├── Monad.sw │ │ ├── Prism.sw │ │ ├── SpecPath.sw │ │ ├── Specware.sw │ │ ├── Value.sw │ │ ├── ValueSig.sw │ │ └── Wizard.sw ├── Utilities │ ├── Annotations.sw │ ├── Pedigree.sw │ └── Position.sw └── XML │ ├── Conversions │ ├── GenerateDocument.sw │ ├── InternalizeAux.sw │ ├── InternalizeDocument.sw │ ├── Magic.sw │ ├── Make_XML_Things.sw │ └── README │ ├── Handwritten │ └── Lisp │ │ ├── AdHoc.lisp │ │ ├── Chars.lisp │ │ ├── Magic.lisp │ │ └── Support.lisp │ ├── Parser │ ├── EntityMaps.sw │ ├── Parse_Character_Strings.sw │ ├── Parse_Chars.sw │ ├── Parse_DTD.sw │ ├── Parse_DTD_AttlistDecl.sw │ ├── Parse_DTD_ElementDecl.sw │ ├── Parse_DTD_EntityDecl.sw │ ├── Parse_Document.sw │ ├── Parse_Element.sw │ ├── Parse_ElementTag.sw │ ├── Parse_ExternalDTD.sw │ ├── Parse_InternalDTD.sw │ ├── Parse_Literals.sw │ ├── Parse_Names.sw │ ├── Parse_PI.sw │ ├── Parse_References.sw │ ├── Parse_XMLDecl.sw │ ├── README │ ├── TemporaryHack.sw │ ├── Validate.sw │ ├── XML_Exceptions.sw │ ├── XML_Parser.sw │ ├── XML_Parser_Base.sw │ └── XML_Parser_Monad.sw │ ├── Printers │ └── XML_Printer.sw │ ├── README │ ├── Utilities │ ├── Accessors.sw │ ├── XML_Base.sw │ └── XML_Unicode.sw │ ├── XML.sw │ └── XML_Sig.sw ├── Library ├── AlgorithmTheories │ ├── AbstractValuations.sw │ ├── AlgorithmTaxonomy.pdf │ ├── Constraint.sw │ ├── DivideAndConquer.sw │ ├── FIW_classical.sw │ ├── FIW_coalgebraic.sw │ ├── FIW_indexed.sw │ ├── FI_classical.sw │ ├── FI_coalgebraic.sw │ ├── FI_indexed.sw │ ├── FixpointIteration.sw │ ├── GS_CDBL.sw │ ├── GS_Galois_Connection.sw │ ├── GenerateAndTest.sw │ ├── GlobalSearch.sw │ ├── LocalSearch.sw │ ├── ProblemReduction.sw │ ├── ProblemTheory.sw │ ├── ProblemTheoryC.sw │ ├── SBFIW.sw │ └── SBPT.sw ├── Algorithms │ ├── Handwritten │ │ └── Lisp │ │ │ └── Thread.lisp │ ├── Parsing │ │ └── Chart │ │ │ └── Handwritten │ │ │ └── Lisp │ │ │ ├── comment-hack.lisp │ │ │ ├── describe-grammar.lisp │ │ │ ├── parse-add-rules.lisp │ │ │ ├── parse-debug-1.lisp │ │ │ ├── parse-debug-2.lisp │ │ │ ├── parse-decls.lisp │ │ │ ├── parse-node-utilities.lisp │ │ │ ├── parse-semantics.lisp │ │ │ ├── parse-top.lisp │ │ │ ├── parser-package.lisp │ │ │ ├── seal-parser.lisp │ │ │ ├── system.lisp │ │ │ ├── tokenizer-decls.lisp │ │ │ └── tokenizer.lisp │ └── Thread.sw ├── Base.sw ├── Base │ ├── All.sw │ ├── Boolean.sw │ ├── Character.sw │ ├── Compare.sw │ ├── Empty.sw │ ├── Function.sw │ ├── Handwritten │ │ └── Lisp │ │ │ ├── Character.lisp │ │ │ ├── Integer.lisp │ │ │ ├── ProvideSpecwareRuntime.lisp │ │ │ ├── String.lisp │ │ │ ├── System.lisp │ │ │ └── meta-slang-runtime.lisp │ ├── Integer.sw │ ├── Integer_Executable.sw │ ├── Isa │ │ └── ROOT │ ├── IsabelleExtensions.sw │ ├── List.sw │ ├── List_Executable.sw │ ├── Option.sw │ ├── README.txt │ ├── String.sw │ ├── String_Executable.sw │ ├── Sum.sw │ └── structure.ppt ├── CGen │ ├── Deep │ │ ├── All.sw │ │ ├── C.sw │ │ ├── CPrettyPrinter.sw │ │ ├── CPrettyPrinter_Tests.sw │ │ └── test.sh │ ├── Examples │ │ ├── CModel.sw │ │ ├── CUtilities.sw │ │ ├── ExampleCopyByte.sw │ │ ├── Examples.sw │ │ └── LibExt.sw │ ├── Monadic │ │ ├── C.sw │ │ ├── CGen.sw │ │ ├── CPrettyPrinter.sw │ │ ├── C_DSL.sw │ │ ├── C_Permissions.sw │ │ ├── C_Predicates.sw │ │ ├── Examples │ │ │ ├── Examples.sw │ │ │ ├── LowLevel_Examples.sw │ │ │ ├── NegateBytes-Derivation.sw │ │ │ ├── NegateBytes.sw │ │ │ ├── NegateBytesModified.sw │ │ │ └── NegateBytesOrig.sw │ │ ├── SplittingAlg.sw │ │ ├── TraceMonad.sw │ │ ├── TraceMonad_Simple.sw │ │ └── test.sh │ ├── README.txt │ └── Shallow │ │ ├── All.sw │ │ ├── Arrays.sw │ │ ├── CGenShallowAllIsa.sw │ │ ├── CTarget.sw │ │ ├── CTargetExamples.sw │ │ ├── CTargetLemmas.sw │ │ ├── CTargetParameters.sw │ │ ├── Imp.sw │ │ ├── Isa │ │ └── ROOT │ │ └── Library.sw ├── DataStructures │ ├── All.sw │ ├── AllIsa.sw │ ├── Bags.sw │ ├── BagsAsLists.sw │ ├── BagsAsMaps.sw │ ├── Collections.sw │ ├── Extensions.sw │ ├── Isa │ │ └── ROOT │ ├── Maps.sw │ ├── MapsAsBTVectors.sw │ ├── MapsAsLists.sw │ ├── MapsAsSTHTables.sw │ ├── MapsAsSets.sw │ ├── MapsAsVectors.sw │ ├── POSet.sw │ ├── STBase.sw │ ├── Sets.sw │ ├── SetsAsBagMaps.sw │ ├── SetsAsBags.sw │ ├── SetsAsLists.sw │ ├── SetsAsMaps.sw │ ├── SetsAsSTHTables0.sw │ ├── Stacks.sw │ ├── StacksAsCoproducts.sw │ ├── StacksAsLists.sw │ ├── StacksAsVectors.sw │ ├── StructuredTypes.sw │ └── test.sh ├── General │ ├── All.sw │ ├── AllIsa.sw │ ├── Assert.sw │ ├── Bit.sw │ ├── BitList.sw │ ├── EndoRelation.sw │ ├── FiniteMap.sw │ ├── FiniteMapAsFiniteSet.sw │ ├── FiniteMapAsFiniteSetMorphism.sw │ ├── FiniteMapAsList.sw │ ├── FiniteMapAsListMorphism.sw │ ├── FiniteSet.sw │ ├── FiniteSetAsList.sw │ ├── FiniteSetAsListMorphism.sw │ ├── FunctionExt.sw │ ├── IntegerExt.sw │ ├── IntegerExt_ExecOps.sw │ ├── IntegerExt_Refinement.sw │ ├── Isa │ │ └── ROOT │ ├── ListExt.sw │ ├── ListExt_ExecOps.sw │ ├── ListExt_Refinement.sw │ ├── ListFacts.sw │ ├── Map.sw │ ├── OptionExt.sw │ ├── Order.sw │ ├── Pred.sw │ ├── README.txt │ ├── Rational.sw │ ├── Real.sw │ ├── Relation.sw │ ├── Sequence.sw │ ├── Set.sw │ ├── SizedInts.sw │ ├── SizedNats.sw │ ├── Stream.sw │ ├── TimedTrace.sw │ ├── TwosComplementNumber.sw │ ├── TwosComplementNumber_ExecOps.sw │ ├── TwosComplementNumber_Refinement.sw │ ├── Type.sw │ └── structure.ppt ├── Haskell │ ├── Boolean.hs │ ├── Compare.hs │ ├── Empty.hs │ ├── Function.hs │ ├── Option.hs │ ├── SW_Base.hs │ ├── SW_Char.hs │ ├── SW_Integer.hs │ ├── SW_List.hs │ └── SW_String.hs ├── IO │ ├── Emacs │ │ ├── Preface.el │ │ ├── augment-load-path.el │ │ ├── compat.el │ │ ├── files.el │ │ ├── franz-archive.el │ │ ├── ilisp-archive.el │ │ ├── load-and-start-specware4.el │ │ ├── load-openmcl.el │ │ ├── load-slime.el │ │ ├── load-slime.lisp │ │ ├── load.el │ │ ├── make-patch-file.el │ │ ├── preload-swank.lisp │ │ ├── slime │ │ │ ├── .gitref │ │ │ ├── CONTRIBUTING.md │ │ │ ├── Makefile │ │ │ ├── NEWS │ │ │ ├── PROBLEMS │ │ │ ├── README.md │ │ │ ├── contrib │ │ │ │ ├── Makefile │ │ │ │ ├── README.md │ │ │ │ ├── bridge.el │ │ │ │ ├── inferior-slime.el │ │ │ │ ├── slime-asdf.el │ │ │ │ ├── slime-autodoc.el │ │ │ │ ├── slime-banner.el │ │ │ │ ├── slime-buffer-streams.el │ │ │ │ ├── slime-c-p-c.el │ │ │ │ ├── slime-cl-indent.el │ │ │ │ ├── slime-clipboard.el │ │ │ │ ├── slime-compiler-notes-tree.el │ │ │ │ ├── slime-editing-commands.el │ │ │ │ ├── slime-enclosing-context.el │ │ │ │ ├── slime-fancy-inspector.el │ │ │ │ ├── slime-fancy-trace.el │ │ │ │ ├── slime-fancy.el │ │ │ │ ├── slime-fontifying-fu.el │ │ │ │ ├── slime-fuzzy.el │ │ │ │ ├── slime-highlight-edits.el │ │ │ │ ├── slime-hyperdoc.el │ │ │ │ ├── slime-indentation.el │ │ │ │ ├── slime-listener-hooks.el │ │ │ │ ├── slime-macrostep.el │ │ │ │ ├── slime-mdot-fu.el │ │ │ │ ├── slime-media.el │ │ │ │ ├── slime-mrepl.el │ │ │ │ ├── slime-package-fu.el │ │ │ │ ├── slime-parse.el │ │ │ │ ├── slime-presentation-streams.el │ │ │ │ ├── slime-presentations.el │ │ │ │ ├── slime-quicklisp.el │ │ │ │ ├── slime-references.el │ │ │ │ ├── slime-repl.el │ │ │ │ ├── slime-sbcl-exts.el │ │ │ │ ├── slime-scheme.el │ │ │ │ ├── slime-scratch.el │ │ │ │ ├── slime-snapshot.el │ │ │ │ ├── slime-sprof.el │ │ │ │ ├── slime-trace-dialog.el │ │ │ │ ├── slime-tramp.el │ │ │ │ ├── slime-typeout-frame.el │ │ │ │ ├── slime-xref-browser.el │ │ │ │ ├── swank-arglists.lisp │ │ │ │ ├── swank-asdf.lisp │ │ │ │ ├── swank-buffer-streams.lisp │ │ │ │ ├── swank-c-p-c.lisp │ │ │ │ ├── swank-clipboard.lisp │ │ │ │ ├── swank-fancy-inspector.lisp │ │ │ │ ├── swank-fuzzy.lisp │ │ │ │ ├── swank-goo.goo │ │ │ │ ├── swank-hyperdoc.lisp │ │ │ │ ├── swank-ikarus.ss │ │ │ │ ├── swank-indentation.lisp │ │ │ │ ├── swank-jolt.k │ │ │ │ ├── swank-kawa.scm │ │ │ │ ├── swank-larceny.scm │ │ │ │ ├── swank-listener-hooks.lisp │ │ │ │ ├── swank-macrostep.lisp │ │ │ │ ├── swank-media.lisp │ │ │ │ ├── swank-mit-scheme.scm │ │ │ │ ├── swank-mlworks.sml │ │ │ │ ├── swank-mrepl.lisp │ │ │ │ ├── swank-package-fu.lisp │ │ │ │ ├── swank-presentation-streams.lisp │ │ │ │ ├── swank-presentations.lisp │ │ │ │ ├── swank-quicklisp.lisp │ │ │ │ ├── swank-r6rs.scm │ │ │ │ ├── swank-repl.lisp │ │ │ │ ├── swank-sbcl-exts.lisp │ │ │ │ ├── swank-snapshot.lisp │ │ │ │ ├── swank-sprof.lisp │ │ │ │ ├── swank-trace-dialog.lisp │ │ │ │ ├── swank-util.lisp │ │ │ │ ├── swank.rb │ │ │ │ └── test │ │ │ │ │ ├── slime-autodoc-tests.el │ │ │ │ │ ├── slime-c-p-c-tests.el │ │ │ │ │ ├── slime-cl-indent-test.txt │ │ │ │ │ ├── slime-enclosing-context-tests.el │ │ │ │ │ ├── slime-fontifying-fu-tests.el │ │ │ │ │ ├── slime-indentation-tests.el │ │ │ │ │ ├── slime-macrostep-tests.el │ │ │ │ │ ├── slime-mdot-fu-tests.el │ │ │ │ │ ├── slime-parse-tests.el │ │ │ │ │ ├── slime-presentations-tests.el │ │ │ │ │ └── slime-repl-tests.el │ │ │ ├── doc │ │ │ │ ├── .cvsignore │ │ │ │ ├── Makefile │ │ │ │ ├── contributors.texi │ │ │ │ ├── slime-refcard.pdf │ │ │ │ ├── slime-refcard.tex │ │ │ │ ├── slime-small.eps │ │ │ │ ├── slime-small.pdf │ │ │ │ ├── slime.css │ │ │ │ ├── slime.texi │ │ │ │ └── texinfo-tabulate.awk │ │ │ ├── lib │ │ │ │ ├── .nosearch │ │ │ │ ├── cl-lib.el │ │ │ │ ├── ert-x.el │ │ │ │ ├── ert.el │ │ │ │ ├── hyperspec.el │ │ │ │ └── macrostep.el │ │ │ ├── metering.lisp │ │ │ ├── nregex.lisp │ │ │ ├── packages.lisp │ │ │ ├── sbcl-pprint-patch.lisp │ │ │ ├── slime-autoloads.el │ │ │ ├── slime-tests.el │ │ │ ├── slime.el │ │ │ ├── start-swank.lisp │ │ │ ├── swank-loader.lisp │ │ │ ├── swank.asd │ │ │ ├── swank.lisp │ │ │ ├── swank │ │ │ │ ├── abcl.lisp │ │ │ │ ├── allegro.lisp │ │ │ │ ├── backend.lisp │ │ │ │ ├── ccl.lisp │ │ │ │ ├── clasp.lisp │ │ │ │ ├── clisp.lisp │ │ │ │ ├── cmucl.lisp │ │ │ │ ├── corman.lisp │ │ │ │ ├── ecl.lisp │ │ │ │ ├── gray.lisp │ │ │ │ ├── lispworks.lisp │ │ │ │ ├── match.lisp │ │ │ │ ├── mezzano.lisp │ │ │ │ ├── mkcl.lisp │ │ │ │ ├── rpc.lisp │ │ │ │ ├── sbcl.lisp │ │ │ │ ├── scl.lisp │ │ │ │ ├── source-file-cache.lisp │ │ │ │ └── source-path-parser.lisp │ │ │ └── xref.lisp │ │ ├── specware-mode.el │ │ ├── specware_logo.xpm │ │ ├── sw-eli-patches.el │ │ ├── sw-font.el │ │ ├── sw-init.el │ │ ├── sw-interface.el │ │ ├── sw-msp-emacs.el │ │ ├── sw-refine-utils.el │ │ ├── sw-slime.el │ │ ├── sw-start.el │ │ └── sw-utilities.el │ ├── Primitive │ │ ├── Directory.sw │ │ ├── Handwritten │ │ │ └── Lisp │ │ │ │ └── IO.lisp │ │ ├── IO.sw │ │ └── Pathname.sw │ └── Unicode │ │ ├── UStringAsList.sw │ │ └── UnicodeSig.sw ├── InterpreterBase.sw ├── Isa │ └── ROOT ├── Legacy │ ├── DataStructures │ │ ├── ErrorMonad.sw │ │ ├── Handwritten │ │ │ └── Lisp │ │ │ │ ├── Array.lisp │ │ │ │ └── HashTable.lisp │ │ ├── HashTable.sw │ │ ├── IntSetSplay.sw │ │ ├── LazyList.sw │ │ ├── ListPair.sw │ │ ├── ListUtilities.sw │ │ ├── MergeSort.sw │ │ ├── Monadic │ │ │ └── SplayMap.sw │ │ ├── NatMapSplay.sw │ │ ├── SplayMap.sw │ │ ├── SplaySet.sw │ │ ├── SplayTree.sw │ │ ├── StringMapSplay.sw │ │ ├── StringSetSplay.sw │ │ ├── StringUtilities.sw │ │ └── TopSort.sw │ ├── Deprecated.sw │ └── Utilities │ │ ├── Handwritten │ │ └── Lisp │ │ │ ├── IO.lisp │ │ │ ├── Lisp.lisp │ │ │ ├── State.lisp │ │ │ └── System.lisp │ │ ├── IO.sw │ │ ├── Lisp.sw │ │ ├── State.sw │ │ └── System.sw ├── LibraryAllIsa.sw ├── Math │ ├── LinearOrder.sw │ ├── Logic3.sw │ ├── Logic4.sw │ ├── Orders.sw │ ├── PartialOrder.sw │ ├── PartialOrder1.sw │ ├── PartialOrder_prefix.sw │ ├── PolarityAlgebra.sw │ ├── Semilattice.sw │ ├── fixpoint.sw │ ├── fixpoint0.sw │ ├── fixpoint1.sw │ ├── fixpoint_chaotic.sw │ ├── fixpoint_coalgebraic.sw │ └── fixpoint_indexed.sw ├── PrettyPrinter │ ├── BjornerEspinosa.sw │ ├── NaiveWadlerLindig.sw │ └── WadlerLindig.sw ├── ProverBase │ ├── Char.sw │ ├── Compare.sw │ ├── Functions.sw │ ├── Integer.sw │ ├── List.sw │ ├── Option.sw │ ├── String.sw │ └── Top.sw ├── SpecwareRuntime.lisp ├── Structures │ ├── Data │ │ ├── BisimView.sw │ │ ├── Categories │ │ │ ├── Cocomplete │ │ │ │ ├── Polymorphic.sw │ │ │ │ └── Polymorphic │ │ │ │ │ └── AsRecord.sw │ │ │ ├── Diagrams │ │ │ │ ├── Polymorphic.sw │ │ │ │ ├── Polymorphic │ │ │ │ │ └── AsRecord.sw │ │ │ │ └── README │ │ │ ├── Functors │ │ │ │ ├── FreeDomain.sw │ │ │ │ └── FreeDomain │ │ │ │ │ ├── Polymorphic.sw │ │ │ │ │ ├── Polymorphic │ │ │ │ │ └── AsRecord.sw │ │ │ │ │ └── README │ │ │ ├── NatTrans │ │ │ │ └── FreeFunctorDomain │ │ │ │ │ ├── Polymorphic.sw │ │ │ │ │ └── Polymorphic │ │ │ │ │ └── AsRecord.sw │ │ │ ├── Polymorphic.sw │ │ │ ├── Polymorphic │ │ │ │ └── Morphism.sw │ │ │ ├── Sketches.sw │ │ │ ├── Sketches │ │ │ │ ├── Monomorphic.sw │ │ │ │ └── Monomorphic │ │ │ │ │ └── AsRecord.sw │ │ │ └── Systems.sw │ │ ├── Collections.sw │ │ ├── Collections │ │ │ ├── Enum.sw │ │ │ ├── Finite.sw │ │ │ ├── Fold.sw │ │ │ ├── FoldLeft.sw │ │ │ └── FoldRight.sw │ │ ├── Elem.sw │ │ ├── Graphs.sw │ │ ├── Graphs │ │ │ └── Finite.sw │ │ ├── IMap.sw │ │ ├── ISet.sw │ │ ├── Lens.sw │ │ ├── MLens.sw │ │ ├── Maps.sw │ │ ├── Maps │ │ │ ├── Cod.sw │ │ │ ├── Dom.sw │ │ │ ├── Finite.sw │ │ │ ├── Finite │ │ │ │ ├── Polymorphic.sw │ │ │ │ └── Polymorphic │ │ │ │ │ └── Lisp.sw │ │ │ ├── Handwritten │ │ │ │ └── Lisp │ │ │ │ │ ├── MapAsBTHarray.lisp │ │ │ │ │ ├── MapAsBTVector.lisp │ │ │ │ │ ├── MapAsHarray.lisp │ │ │ │ │ ├── MapAsSTHarray.lisp │ │ │ │ │ └── MapAsVector.lisp │ │ │ ├── MapVec.sw │ │ │ ├── Monadic │ │ │ │ ├── Handwritten │ │ │ │ │ └── Lisp │ │ │ │ │ │ └── HashTable.lisp │ │ │ │ └── Polymorphic.sw │ │ │ ├── Monomorphic.sw │ │ │ ├── Monomorphic │ │ │ │ └── AsLists.sw │ │ │ ├── Polymorphic.sw │ │ │ ├── Polymorphic │ │ │ │ └── AsLists.sw │ │ │ ├── Simple.sw │ │ │ ├── SimpleAsAlist.sw │ │ │ ├── SimpleAsBTHarray.sw │ │ │ ├── SimpleAsBTVector.sw │ │ │ ├── SimpleAsSTHarray.sw │ │ │ └── SimpleAsVector.sw │ │ ├── MergeUnion │ │ │ ├── MergeUnion.sw │ │ │ └── StatefulMergeUnion.sw │ │ ├── Monad.sw │ │ ├── Monad │ │ │ ├── Base.sw │ │ │ ├── BasicIO.sw │ │ │ ├── CPO.sw │ │ │ ├── Control.sw │ │ │ ├── DomainTheory.sw │ │ │ ├── ErrorMonad.sw │ │ │ ├── ErrorT.sw │ │ │ ├── Exception.sw │ │ │ ├── Fold.sw │ │ │ ├── Handwritten │ │ │ │ └── Lisp │ │ │ │ │ ├── ImpureIO.lisp │ │ │ │ │ ├── State.dfsl │ │ │ │ │ └── State.lisp │ │ │ ├── IO.sw │ │ │ ├── IdentityM.sw │ │ │ ├── ImpureIO.sw │ │ │ ├── MonadError.sw │ │ │ ├── MonadNonTerm.sw │ │ │ ├── MonadPlus.sw │ │ │ ├── MonadReader.sw │ │ │ ├── MonadState.sw │ │ │ ├── MonadTrans.sw │ │ │ ├── NonTermM.sw │ │ │ ├── NondetT.sw │ │ │ ├── PredMonad.sw │ │ │ ├── PredMonadError.sw │ │ │ ├── PredMonadReader.sw │ │ │ ├── PredMonadState.sw │ │ │ ├── ResumpPowerT.sw │ │ │ ├── ResumpT.sw │ │ │ ├── State.sw │ │ │ └── StateT.sw │ │ ├── OptLens.sw │ │ ├── Pretty.sw │ │ ├── QuotientSets │ │ │ ├── Monomorphic.sw │ │ │ └── Monomorphic │ │ │ │ ├── AsListOfLists.sw │ │ │ │ ├── MFSet.sw │ │ │ │ └── MFSetViaRefs.sw │ │ ├── RelLens.sw │ │ ├── Sets.sw │ │ ├── Sets │ │ │ ├── AsSTHarray.sw │ │ │ ├── Elem.sw │ │ │ ├── Enum.sw │ │ │ ├── Finite.sw │ │ │ ├── Finite │ │ │ │ └── Polymorphic.sw │ │ │ ├── Handwritten │ │ │ │ └── Lisp │ │ │ │ │ └── SetAsSTHarray.lisp │ │ │ ├── Monomorphic.sw │ │ │ ├── Monomorphic │ │ │ │ └── AsLists.sw │ │ │ ├── Polymorphic.sw │ │ │ └── Polymorphic │ │ │ │ └── AsLists.sw │ │ └── TwosComplementNumber.sw │ └── Math │ │ └── Cat.sw ├── Unvetted │ ├── ApproximateReal.sw │ ├── Complex.sw │ ├── Double.sw │ ├── ExampleSpec.sw │ ├── ExceptionMonads.sw │ ├── Fallible.sw │ ├── Handwritten │ │ └── Lisp │ │ │ ├── Complex.lisp │ │ │ └── Double.lisp │ ├── InteractionSequences.sw │ ├── ListUtilities.sw │ ├── Monad.sw │ ├── README │ ├── Random.sw │ ├── Rational.sw │ ├── StateAndExceptionMonads.sw │ ├── StateMachines.sw │ ├── StateMonads.sw │ ├── StringUtilities.sw │ └── Traces.sw └── skeleton.txt ├── Makefile ├── Provers ├── DCProof │ ├── API.sw │ ├── APIImpl.sw │ ├── Exceptions.sw │ ├── ExtAC1Expr.sw │ ├── ExtACExpr.sw │ ├── ExtExpressionImpl.sw │ ├── ExtProofsAPI.sw │ ├── ExtProofsImpl.sw │ ├── ExtTypesAPI.sw │ ├── GoalsA.sw │ ├── GoalsI.sw │ ├── GoalsS.sw │ ├── MSProver0.sw │ ├── Monad.sw │ ├── PC1Prover0.sw │ ├── PCProver0.sw │ ├── ProofGoals.sw │ ├── ProofGoalsExp.sw │ ├── ProofGoalsImpl.sw │ ├── ReadEvalPrint.sw │ ├── SeqProver0.sw │ ├── State.sw │ ├── StateAndExceptionMonads.sw │ ├── States.sw │ └── Trees.sw ├── DP │ ├── Coefficient.sw │ ├── CompPred.sw │ ├── DPCheck │ │ ├── InferenceRulesCheck.sw │ │ ├── Monad.sw │ │ └── State.sw │ ├── DPGen │ │ ├── FourierMotzkinGeneric.sw │ │ ├── IneqSet.sw │ │ ├── Inequality.sw │ │ ├── InferenceRules.sw │ │ ├── InferenceRulesI.sw │ │ ├── Monad.sw │ │ ├── ProofGen.txt │ │ ├── State.sw │ │ └── StateAndExceptionMonads.sw │ ├── FourierMotzkin.sw │ ├── FourierMotzkinGeneric.sw │ ├── Handwritten │ │ └── Lisp │ │ │ └── Rational.lisp │ ├── IneqSet.sw │ ├── IneqSig.sw │ ├── Inequality.sw │ ├── PolySig.sw │ ├── Polynomial.sw │ ├── Rational.sw │ ├── SATDPSig.sw │ ├── SATFMGeneric.sw │ ├── SATFormula.sw │ ├── SATGeneric.sw │ ├── SATSig.sw │ ├── SATSigDP.sw │ └── ToFourierMotzkin.sw ├── Proof.sw ├── ProofChecker │ ├── BasicAbbreviations.sw │ ├── Checker.sw │ ├── CheckerAndOtherAbbreviations.sw │ ├── Contexts.sw │ ├── Correctness.sw │ ├── Failures.sw │ ├── Implementation.sw │ ├── IntegerExt.sw │ ├── Judgements.sw │ ├── Libs.sw │ ├── Monad.sw │ ├── Occurrences.sw │ ├── OtherAbbreviations.sw │ ├── OtherAbbreviations_Executable.sw │ ├── OtherAbbreviations_Refinement.sw │ ├── Primitives.sw │ ├── Primitives_Instantiated.sw │ ├── Primitives_Instantiation.sw │ ├── Proofs.sw │ ├── Provability.sw │ ├── README.txt │ ├── Refinement.sw │ ├── Spec.sw │ ├── StateAndExceptionMonads.sw │ ├── States.sw │ ├── Substitutions.sw │ ├── Test.sw │ ├── Test │ │ ├── Null.sw │ │ └── TransTest.sw │ ├── TranslateMSToPC.sw │ ├── TypesAndExpressions.sw │ ├── dependencies.pdf │ └── dependencies.ppt ├── ProofDebugger │ ├── AbbreviationContractor.sw │ ├── ExtPrinter.sw │ ├── ExtendedTypesAndExpressions.sw │ ├── Implementation.sw │ ├── Print.sw │ ├── Printer.sw │ ├── ProofChecker.sw │ ├── README.txt │ ├── Refinement.sw │ └── Spec.sw ├── ProofGenerator │ ├── ContextAPI.sw │ ├── ContextProofs.sw │ ├── ContextProofsI.sw │ ├── GeneralTypes.sw │ ├── Occurrences.sw │ ├── ProofGenSig.sw │ ├── SubTypeProofs.sw │ ├── TypeExpressionProofs.sw │ ├── TypeProofs.sw │ ├── TypesAndExpressionsAPI.sw │ ├── UniqueAxiomNames.sw │ ├── UniqueAxiomNames_Implementation.sw │ ├── UniqueAxiomNames_Refinement.sw │ ├── UniqueVars.sw │ ├── UniqueVars_Implementation.sw │ └── UniqueVars_Refinement.sw ├── ToCoq │ ├── CoqPrinter.sw │ ├── CoqTest.v │ ├── MetaSlang.v │ ├── Spec_FunctorTypes.v │ ├── Spec_Inductive.v │ ├── Spec_Inductive_New.v │ ├── Spec_ModType.v │ ├── Spec_Record.v │ ├── Spec_Typeclass.v │ └── Test.sw └── ToIsabelle │ ├── IsaPrinter.sw │ └── TheoryMorphism.sw ├── README.txt ├── Release ├── BuildScripts │ ├── BuildSpecwareDistribution.lisp │ ├── BuildSpecwarePreamble.lisp │ ├── Build_Specware_Linux_CMUCL_Distribution │ ├── Build_Specware_Linux_Distribution │ ├── Build_Specware_Linux_SBCL_Distribution │ ├── Build_Specware_Mac_SBCL_Distribution │ ├── Build_Specware_Windows_ACL_Distribution.cmd │ ├── Build_Specware_Windows_SBCL_Distribution.cmd │ ├── GatherSpecwareComponents.lisp │ ├── HIDE │ │ ├── Build_Specware_Linux_CMUCL_Distribution │ │ └── Build_Specware_Linux_SBCL_Distribution │ ├── LoadSpecware.lisp │ ├── Test_Specware_Linux_SBCL_Distribution │ ├── Test_Specware_Linux_SBCL_Distribution_Gov │ ├── Test_Specware_Mac_SBCL_Distribution │ ├── Test_Specware_Mac_SBCL_Distribution_Gov │ ├── Test_Specware_Windows_SBCL_Distribution.cmd │ ├── Test_Specware_Windows_SBCL_Distribution_Gov.cmd │ └── autoloads.out ├── Generic │ └── StartSpecwareShell.lisp ├── Linux │ ├── Allegro │ │ ├── Find_ACL │ │ ├── Find_Specware_App_ACL │ │ ├── Specware │ │ └── SpecwareShell │ ├── CMUCL │ │ ├── Find_CMUCL │ │ ├── Find_Specware_App_CMUCL │ │ ├── Specware │ │ └── SpecwareShell │ ├── Find_SPECWARE4 │ ├── Find_XEMACS │ ├── OpenMCL │ │ ├── Find_OpenMCL │ │ ├── Find_Specware_App_OpenMCL │ │ ├── Specware │ │ └── SpecwareShell │ ├── Patches │ │ └── empty-patch-template.lisp │ ├── SBCL │ │ ├── Emacs_Specware │ │ ├── Find_SBCL │ │ ├── Find_Specware_App_SBCL │ │ ├── Isabelle_Specware │ │ ├── Specware │ │ ├── SpecwareShell │ │ └── XEmacs_Specware │ ├── Update_Path │ ├── Update_SWPATH │ └── install_gnome_desktop_icons_specware ├── LispUtilities │ ├── CompactMemory.lisp │ ├── LoadUtilities.lisp │ ├── MemoryManagement.lisp │ ├── dir-utils.lisp │ ├── dist-utils.lisp │ ├── env-utils.lisp │ └── save-image.lisp ├── Mac │ ├── Find_XEMACS │ ├── InstallOnMac │ └── sbcl │ │ ├── Create Specware Dist.pmdoc │ │ ├── 01releases-contents.xml │ │ ├── 01releases.xml │ │ └── index.xml │ │ ├── Create Specware Package.pmproj │ │ ├── Emacs_Specware │ │ ├── Isabelle_Specware │ │ ├── Isabelle_Specware.app.zip │ │ ├── Isabelle_Specware.app │ │ └── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ └── Isabelle_Specware │ │ │ └── Resources │ │ │ ├── AppSettings.plist │ │ │ ├── English.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── MainMenu.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── appIcon.icns │ │ │ └── script │ │ ├── Isabelle_Specware.terminal │ │ ├── Specware │ │ ├── Specware.app.zip │ │ ├── Specware.app │ │ └── Contents │ │ │ ├── Info.plist │ │ │ ├── MacOS │ │ │ └── Specware │ │ │ └── Resources │ │ │ ├── AppSettings.plist │ │ │ ├── English.lproj │ │ │ ├── InfoPlist.strings │ │ │ └── MainMenu.nib │ │ │ │ └── keyedobjects.nib │ │ │ ├── appIcon.icns │ │ │ └── script │ │ ├── Specware.sh │ │ ├── Specware.terminal │ │ ├── SpecwareShell.sh │ │ └── XEmacs_Specware └── Windows │ ├── Allegro │ ├── Find_SPECWARE4.cmd │ ├── Find_Specware_App_ACL.cmd │ ├── OLD │ │ ├── Specware.cmd │ │ └── SpecwareShell.cmd │ ├── Specware.cmd │ ├── SpecwareShell.cmd │ ├── start-in-xemacs-ilisp.cmd │ ├── start-in-xemacs-slime.cmd │ └── start-in-xemacs-xeli.cmd │ ├── Find_EMACS │ ├── Find_EMACS.cmd │ ├── Find_SPECWARE4 │ ├── Find_SPECWARE4.cmd │ ├── Find_XEMACS │ ├── Find_XEMACS.cmd │ ├── Patches │ ├── ansi-loop.fasl │ ├── empty-patch-template.lisp │ ├── patch-4-0-3.fasl │ ├── patch-4-0-3.lisp │ ├── patch-4-0-4.fasl │ ├── patch-4-0-4.lisp │ ├── patch-4-0-5.fasl │ ├── patch-4-0-5.lisp │ ├── patch-4-0-6.fasl │ └── patch-4-0-6.lisp │ ├── StartXWin.cmd │ ├── Update_Path │ ├── Update_Path.cmd │ ├── Update_SWPATH │ ├── Update_SWPATH.cmd │ └── sbcl │ ├── Emacs_Specware │ ├── Find_SPECWARE4.cmd │ ├── Find_Specware_App_SBCL │ ├── Find_Specware_App_SBCL.cmd │ ├── Isabelle_Specware │ ├── Specware │ ├── Specware.cmd │ ├── SpecwareShell │ ├── SpecwareShell.cmd │ ├── XEmacs_Specware │ ├── start-in-emacs-slime.cmd │ └── start-in-xemacs-slime.cmd ├── Scripts ├── lisp │ └── Specware_Version.lisp └── unix │ ├── Build_App │ ├── Build_Dev │ ├── Compile_Lisp │ ├── Generate_Lisp │ ├── Make_Distribution_Dir │ ├── README │ ├── Specware_Version │ ├── Verify_ACL │ ├── Verify_CMUCL │ ├── Verify_Lisp │ ├── Verify_OpenMCL │ ├── Verify_SBCL │ ├── Verify_Specware │ └── Verify_Specware4 ├── Specware4GenLisp.sw ├── TestSuite ├── Base │ └── Tests.lisp ├── Bugs │ ├── Bug_0001 │ │ └── Status │ ├── Bug_0002 │ │ └── Status │ ├── Bug_0003 │ │ ├── ABC.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0004 │ │ ├── Status │ │ └── Template │ ├── Bug_0005 │ │ └── Status │ ├── Bug_0006 │ │ ├── Diagram.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0007 │ │ ├── ManySpecs.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0008 │ │ └── Status │ ├── Bug_0009 │ │ └── Status │ ├── Bug_0010 │ │ └── Status │ ├── Bug_0011 │ │ ├── Status │ │ ├── Tests.lisp │ │ ├── abc.sw │ │ └── xyz.sw │ ├── Bug_0012 │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0013 │ │ └── Status │ ├── Bug_0014 │ │ └── Status │ ├── Bug_0015 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── subsExample.sw │ ├── Bug_0016 │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0017 │ │ ├── AAcol.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0018 │ │ ├── BBcol.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0019 │ │ └── Status │ ├── Bug_0020 │ │ └── Status │ ├── Bug_0021 │ │ ├── AmbiguousOp.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0022 │ │ ├── RedefinedOp.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0023 │ │ └── Status │ ├── Bug_0024 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── players.sw │ ├── Bug_0025 │ │ ├── S.sw │ │ ├── Status │ │ └── XTests.lisp │ ├── Bug_0026 │ │ └── Status │ ├── Bug_0027 │ │ └── Status │ ├── Bug_0028 │ │ ├── ProblematicTypes.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0029 │ │ ├── A.sw │ │ └── Status │ ├── Bug_0030 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── WasCausingSegFault.sw │ ├── Bug_0031 │ │ └── Status │ ├── Bug_0032 │ │ └── Status │ ├── Bug_0033 │ │ └── Status │ ├── Bug_0034 │ │ └── Status │ ├── Bug_0035 │ │ └── Status │ ├── Bug_0036 │ │ └── Status │ ├── Bug_0037 │ │ └── Status │ ├── Bug_0038 │ │ └── Status │ ├── Bug_0039 │ │ └── Status │ ├── Bug_0040 │ │ └── Status │ ├── Bug_0041 │ │ └── Status │ ├── Bug_0042 │ │ └── Status │ ├── Bug_0043 │ │ ├── Change.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0044 │ │ └── Status │ ├── Bug_0045 │ │ ├── Flop.sw │ │ ├── Show.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0046 │ │ └── Status │ ├── Bug_0047 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── UpLo.sw │ ├── Bug_0048 │ │ └── Status │ ├── Bug_0049 │ │ └── Status │ ├── Bug_0050 │ │ └── Status │ ├── Bug_0051 │ │ └── Status │ ├── Bug_0052 │ │ └── Status │ ├── Bug_0053 │ │ ├── Status │ │ ├── Subst.sw │ │ └── Tests.lisp │ ├── Bug_0054 │ │ └── Status │ ├── Bug_0055 │ │ ├── ABC.sw │ │ └── Status │ ├── Bug_0056 │ │ ├── Blob.sw │ │ └── Status │ ├── Bug_0057 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── UnusedSpecs.sw │ ├── Bug_0058 │ │ └── Status │ ├── Bug_0059 │ │ └── Status │ ├── Bug_0060 │ │ └── Status │ ├── Bug_0061 │ │ └── Status │ ├── Bug_0062 │ │ └── Status │ ├── Bug_0063 │ │ └── Status │ ├── Bug_0064 │ │ └── Status │ ├── Bug_0065 │ │ └── Status │ ├── Bug_0066 │ │ └── Status │ ├── Bug_0067 │ │ ├── CheckSignature.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0068 │ │ ├── EvenToOdd.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0069 │ │ ├── MorphismFromBase.sw │ │ ├── MorphismToBase.sw │ │ ├── Status │ │ ├── Tests.lisp │ │ ├── TranslateFromBase.sw │ │ └── TranslateIntoBase.sw │ ├── Bug_0070 │ │ └── Status │ ├── Bug_0071 │ │ └── Status │ ├── Bug_0072 │ │ └── Status │ ├── Bug_0073 │ │ └── Status │ ├── Bug_0074 │ │ ├── EquivalentTypes.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0075 │ │ └── Status │ ├── Bug_0076 │ │ └── Status │ ├── Bug_0077 │ │ └── Status │ ├── Bug_0078 │ │ └── Status │ ├── Bug_0079 │ │ └── Status │ ├── Bug_0080 │ │ └── Status │ ├── Bug_0081 │ │ └── Status │ ├── Bug_0082 │ │ └── Status │ ├── Bug_0083 │ │ ├── Ambop.sw │ │ ├── Status │ │ ├── Tests.lisp │ │ └── XX.lisp │ ├── Bug_0084 │ │ └── Status │ ├── Bug_0085 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── quotpat.sw │ ├── Bug_0086 │ │ └── Status │ ├── Bug_0087 │ │ └── Status │ ├── Bug_0088 │ │ └── Status │ ├── Bug_0089 │ │ └── Status │ ├── Bug_0090 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── caseContext.sw │ ├── Bug_0091 │ │ └── Status │ ├── Bug_0092 │ │ ├── BogusImport.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0093 │ │ ├── IncompatColimit.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0094 │ │ └── Status │ ├── Bug_0095 │ │ └── Status │ ├── Bug_0096 │ │ └── Status │ ├── Bug_0097 │ │ └── Status │ ├── Bug_0098 │ │ └── Status │ ├── Bug_0099 │ │ ├── MinusOb.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0100 │ │ └── Status │ ├── Bug_0101 │ │ ├── ObligationsOfInteger.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0102 │ │ ├── ObligationsOfInteger.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0103 │ │ ├── NeedWFO.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0104 │ │ ├── NonConstructive.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0105 │ │ ├── QuantifiedAxiom.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0106 │ │ ├── AmbiguousRef.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0107 │ │ ├── BogusNil.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0108 │ │ ├── ABC.sw │ │ ├── Diagram.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0109 │ │ ├── DeclsRequired.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0110 │ │ ├── BogusNil.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0111 │ │ ├── Capture.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0112 │ │ ├── Capture.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0113 │ │ ├── Collision.sw │ │ ├── Status │ │ ├── Tests.lisp │ │ └── TypeColimits.sw │ ├── Bug_0114 │ │ ├── Colimit.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0115 │ │ └── Status │ ├── Bug_0116 │ │ ├── RemCurr.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0117 │ │ └── Status │ ├── Bug_0118 │ │ ├── EquivTypes.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0119 │ │ └── Status │ ├── Bug_0120 │ │ └── Status │ ├── Bug_0121 │ │ └── Status │ ├── Bug_0122 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── TwoConstants.sw │ ├── Bug_0123 │ │ └── Status │ ├── Bug_0124 │ │ ├── Lists.sw │ │ ├── SetsAsLists.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0125 │ │ ├── PosNat.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0126 │ │ ├── Alpha.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0127 │ │ ├── M.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0128 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── orderOblig.sw │ ├── Bug_0129 │ │ └── Status │ ├── Bug_0130 │ │ └── Status │ ├── Bug_0131 │ │ ├── Option.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0132 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── theOblig.sw │ ├── Bug_0133 │ │ └── Status │ ├── Bug_0134 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── fold.sw │ ├── Bug_0135 │ │ └── Status │ ├── Bug_0136 │ │ └── Status │ ├── Bug_0137 │ │ └── Status │ ├── Bug_0138 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── sub.sw │ ├── Bug_0139 │ │ ├── Logic.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0140 │ │ ├── STO.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0141 │ │ └── Status │ ├── Bug_0142 │ │ ├── Ob.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0143 │ │ ├── Pretty.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0144 │ │ └── Status │ ├── Bug_0145 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── ambigLt.sw │ ├── Bug_0146 │ │ ├── NonConstructive.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0147 │ │ ├── BadMorphisms.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0148 │ │ ├── ImportNum.sw │ │ ├── Status │ │ └── Tests.lisp │ ├── Bug_0149 │ │ └── Status │ ├── Bug_0150 │ │ └── Status │ ├── Bug_0151 │ │ └── Status │ ├── Bug_0152 │ │ └── Status │ ├── Bug_0153 │ │ └── Status │ ├── Bug_0154 │ │ └── Status │ ├── Bug_0155 │ │ └── Status │ ├── Bug_0156 │ │ └── Status │ ├── Bug_0157 │ │ └── Status │ ├── Bug_0158 │ │ └── Status │ ├── Bug_0159 │ │ ├── Status │ │ ├── Tests.lisp │ │ ├── qualify_spec.sw │ │ ├── subst_spec.sw │ │ └── trans_spec.sw │ ├── Bug_0160 │ │ ├── Status │ │ ├── Tests.lisp │ │ └── subst_spec.sw │ ├── Bug_0161 │ │ └── Status │ ├── Bug_0162 │ │ └── Status │ ├── Bug_0163 │ │ └── Status │ ├── Bug_0164 │ │ └── Status │ ├── Bug_0165 │ │ └── Status │ ├── Bug_0166 │ │ └── Status │ ├── Bug_0167 │ │ └── Status │ ├── Bug_0168 │ │ └── Status │ ├── Bug_0169 │ │ └── Status │ ├── Bug_0170 │ │ └── Status │ ├── Bug_0171 │ │ └── Status │ ├── Bug_0172 │ │ └── Status │ ├── Bug_0173 │ │ └── Status │ ├── Bug_0174 │ │ └── Status │ ├── Bug_0175 │ │ └── Status │ ├── Bug_0176 │ │ └── Status │ ├── Bug_0177 │ │ └── Status │ ├── Bug_0178 │ │ └── Status │ ├── Tests.lisp │ └── todo ├── JavaCodeGen │ ├── Expressions.sw │ ├── ExpressionsTest.java │ ├── Factorial.sw │ ├── FactorialTest.java │ ├── GCD.sw │ ├── GCDTest.java │ ├── HigherOrder.sw │ ├── Lists.sw │ ├── ListsTest.java │ ├── MergeSort.sw │ ├── MergeSortTest.java │ ├── Points.sw │ ├── PointsTest.java │ ├── README.txt │ ├── SetsAsLists.sw │ ├── gen.sw │ └── tutorial │ │ ├── MatchingRefinements.sw │ │ ├── MatchingSpecs.sw │ │ └── README.txt ├── Misc │ ├── ImplPoly.sw │ ├── ListOblig.sw │ ├── PP.sw │ ├── QuotientPattern.sw │ ├── RestrictObligation.sw │ ├── SubstRestrictedPat.sw │ ├── Tests.lisp │ ├── a.sw │ ├── b.sw │ ├── c.sw │ ├── colimit.sw │ ├── fib.sw │ ├── fibParseErr.sw │ ├── fibTyErr1.sw │ ├── genC.sw │ ├── libtest.sw │ ├── nameGen.sw │ ├── obligFib.sw │ ├── order.sw │ ├── players.sw │ ├── poly.sw │ ├── proveOblig.sw │ ├── psl1.sw │ ├── qual.sw │ ├── simple.sw │ └── subsortOblig.sw ├── Prover │ └── Owl │ │ ├── Tests.lisp │ │ └── axioms.sw ├── README.txt ├── TWKtests │ ├── Embed.sw │ ├── MathFact.sw │ ├── NilDef.sw │ ├── Switch.sw │ ├── Symbols1.sw │ ├── Tests.lisp │ ├── ThreeValue.sw │ ├── Tuples.sw │ ├── t0103.sw │ ├── t0103_1.sw │ ├── t0103_2.sw │ └── t0103_3.sw ├── Transform │ ├── SpecTransform │ │ ├── Tests.lisp │ │ ├── copyOp.sw │ │ ├── copyOp_TF_Bad_1.goal │ │ ├── copyOp_TF_Bad_2.goal │ │ ├── copyOp_TF_Good_1.goal │ │ ├── copyOp_TF_Good_2.goal │ │ ├── copySpec.sw │ │ ├── copySpec_TF_Bad_1.goal │ │ ├── copySpec_TF_Bad_2.goal │ │ ├── copySpec_TF_Good_1.goal │ │ ├── copySpec_TF_Good_2.goal │ │ ├── doNothing.sw │ │ ├── doNothing_TF_Bad_1.goal │ │ ├── doNothing_TF_Bad_2.goal │ │ ├── doNothing_TF_Good_1.goal │ │ ├── doNothing_TF_Good_2.goal │ │ ├── isomorphism_BitBool.sw │ │ ├── isomorphism_BitBool_TF_Bad_1.goal │ │ ├── isomorphism_BitBool_TF_Bad_2.goal │ │ ├── isomorphism_BitBool_TF_Bad_3.goal │ │ ├── isomorphism_BitBool_TF_Bad_4.goal │ │ ├── isomorphism_BitBool_TF_Good_1.goal │ │ ├── isomorphism_BitBool_TF_Good_2.goal │ │ ├── isomorphism_BitBool_TF_Good_3.goal │ │ ├── isomorphism_BitBool_TF_Good_4.goal │ │ ├── isomorphism_BitBool_TF_Good_5.goal │ │ ├── isomorphism_BitBool_TF_Good_6.goal │ │ ├── isomorphism_BitBool_TF_Good_7.goal │ │ ├── isomorphism_IsoMap.sw │ │ ├── isomorphism_IsoMap_TF_Good_1.goal │ │ ├── isomorphism_IsoMap_TF_Good_2.goal │ │ ├── makeImportingSpec.sw │ │ ├── makeImportingSpec_TF_Good_1.goal │ │ ├── makeImportingSpec_TF_Good_2.goal │ │ ├── showElements.sw │ │ ├── showElements_TF_Bad_1.goal │ │ ├── showElements_TF_Bad_2.goal │ │ ├── showElements_TF_Bad_3.goal │ │ ├── showElements_TF_Bad_4.goal │ │ ├── showElements_TF_Bad_5.goal │ │ ├── showElements_TF_Good_1.goal │ │ ├── showElements_TF_Good_2.goal │ │ ├── showSpec.sw │ │ ├── showSpec_TF_Bad_1.goal │ │ ├── showSpec_TF_Bad_2.goal │ │ ├── showSpec_TF_Good_1.goal │ │ ├── showSpec_TF_Good_2.goal │ │ ├── showSpec_TF_WasBad_1.goal │ │ ├── showSpec_TF_WasBad_2.goal │ │ ├── trace.sw │ │ ├── trace_TF_Bad_1.goal │ │ ├── trace_TF_Bad_2.goal │ │ ├── trace_TF_Bad_3.goal │ │ ├── trace_TF_Good_1.goal │ │ ├── trace_TF_Good_2.goal │ │ ├── unknown.sw │ │ ├── unknown_TF_Bad_1.goal │ │ └── unknown_TF_Bad_2.goal │ └── TermTransform │ │ ├── Tests.lisp │ │ ├── at.sw │ │ ├── at_TF_Bad_1.goal │ │ ├── at_TF_Good_1.goal │ │ ├── lr.sw │ │ ├── lr_TF_Bad_1.goal │ │ ├── lr_TF_Bad_2.goal │ │ ├── lr_TF_Good_1.goal │ │ ├── lr_TF_Good_2.goal │ │ ├── move.sw │ │ ├── move_TF_Bad_1.goal │ │ ├── move_TF_Bad_2.goal │ │ ├── move_TF_Bad_3.goal │ │ ├── move_TF_Bad_4.goal │ │ ├── move_TF_Good_1.goal │ │ ├── move_TF_Good_2.goal │ │ ├── move_TF_Good_3.goal │ │ ├── move_TF_Good_4.goal │ │ ├── move_TF_Good_5.goal │ │ ├── simpIf.sw │ │ ├── simpIf_TF_Bad_1.goal │ │ ├── simpIf_TF_Bad_2.goal │ │ ├── simpIf_TF_Good_1.goal │ │ ├── simpIf_TF_Good_2.goal │ │ ├── simpIf_TF_Good_3.goal │ │ ├── simpIf_TF_Good_4.goal │ │ ├── simpIf_TF_Good_5.goal │ │ ├── simpIf_TF_Good_6.goal │ │ ├── structureEx.sw │ │ ├── structureEx_TF_Good_1.goal │ │ ├── structureEx_TF_Good_2.goal │ │ ├── structureEx_TF_Good_3.goal │ │ ├── structureEx_TF_Good_4.goal │ │ ├── structureEx_TF_Good_5.goal │ │ ├── structureEx_TF_Good_6.goal │ │ ├── syntax.goal │ │ ├── syntax.sw │ │ ├── unknown.sw │ │ ├── unknown_TF_Bad_1.goal │ │ └── unknown_TF_Bad_2.goal ├── Tutorial │ └── Tests.lisp └── runtests ├── Tools └── GraTys │ ├── Fallible.sw │ ├── GraTys.ppt │ ├── Grammar.sw │ ├── GrammarToTypedefs.sw │ ├── Manifest │ ├── Metakeys.sw │ ├── ParseGrammar.sw │ ├── RawSmartSlangGrammar2.sw │ ├── Structs.sw │ ├── Text.sw │ ├── TheGrammar.sw │ ├── Typedef.sw │ ├── TypedefToText.sw │ ├── abc-sources │ └── typedefs.sw ├── UserDoc ├── ManualWritersGuide.pdf ├── README-MANUAL-WRITERS.txt ├── README.txt ├── SpecwareIsabelleInterface.pdf ├── SpecwareLanguageManual.pdf ├── SpecwareQuickReference.pdf ├── SpecwareTransformationManual.pdf ├── SpecwareTutorial.pdf ├── SpecwareUserManual.pdf ├── build-docs.sh ├── examples │ ├── simple1 │ │ ├── A.sw │ │ ├── Aref.sw │ │ ├── B.sw │ │ ├── Bref.sw │ │ ├── M.sw │ │ ├── Wrong.sw │ │ └── test.lisp │ ├── simple2 │ │ ├── Refs │ │ │ ├── A.sw │ │ │ ├── B.sw │ │ │ └── M.sw │ │ ├── Specs │ │ │ ├── A.sw │ │ │ └── B.sw │ │ └── test.lisp │ └── simple3 │ │ ├── Refs.sw │ │ ├── Specs.sw │ │ └── test.lisp ├── refresh-docs.sh └── sources │ ├── Makefile │ ├── isabelle-interface │ ├── Makefile │ ├── bin │ │ └── adjustFontHTML │ ├── concepts.rst │ ├── conf.py │ ├── entities.rst │ ├── example │ │ └── BoolEx.sw │ ├── index.rst │ ├── make.bat │ └── usage.rst │ ├── language-manual │ ├── Makefile │ ├── bookinfo.rst │ ├── conf.py │ ├── disclaimer.rst │ ├── entities.rst │ ├── examples.sw │ ├── grammar.rst │ ├── index.rst │ ├── intro.rst │ ├── libraries.rst │ ├── metaslang.rst │ └── reswords-list.txt │ ├── quick-reference │ ├── Makefile │ ├── QuickReference.doc │ ├── conf.py │ ├── index.rst │ └── refcard.rst │ ├── tutorial │ ├── Makefile │ ├── concepts.rst │ ├── conf.py │ ├── entities.rst │ ├── example.rst │ └── index.rst │ ├── user-manual │ ├── Makefile │ ├── ccodegen.rst │ ├── conf.py │ ├── debug.rst │ ├── defining.rst │ ├── emacs.rst │ ├── entities.rst │ ├── generatedlisp.rst │ ├── haskellcodegen.rst │ ├── index.rst │ ├── install.rst │ ├── javacodegen.rst │ ├── model.rst │ ├── prove.rst │ ├── shell.rst │ └── start.rst │ ├── writers-guide │ ├── Makefile │ ├── conf.py │ ├── index.rst │ ├── using.rst │ └── writing.rst │ └── xform-manual │ ├── Makefile │ ├── conf.py │ ├── defining.rst │ ├── entities.rst │ ├── index.rst │ ├── intro.rst │ ├── iso.rst │ ├── transforms.rst │ ├── xmanual.dbk │ └── xshell.rst └── bin ├── README.txt ├── Specware.app └── Contents │ ├── Info.plist │ ├── MacOS │ └── Specware │ └── Resources │ ├── AppSettings.plist │ ├── MainMenu.nib │ ├── appIcon.icns │ └── script ├── bootstrap ├── specware-batch.sh ├── specware-emacs ├── specware-emacs-isabelle └── specware-shell /.gitignore: -------------------------------------------------------------------------------- 1 | *.sfsl 2 | *.log 3 | *.sbclexe 4 | *.status 5 | *.elc 6 | *.fasl 7 | *~ 8 | .DS_Store -------------------------------------------------------------------------------- /Applications/Handwritten/Lisp/CompactMemory.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl-user) 2 | 3 | ;; Assumes that MemoryManagement.lisp has been loaded. 4 | 5 | (compact-memory t -1 0) 6 | (set-gc-parameters-for-use nil) 7 | 8 | -------------------------------------------------------------------------------- /Applications/Handwritten/Lisp/README: -------------------------------------------------------------------------------- 1 | These are lisp files relevant to all applications generated by Specware. 2 | -------------------------------------------------------------------------------- /Applications/Specware/CodeGenCommands.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecwareShell qualifying spec 4 | 5 | import CommandParser 6 | 7 | end-spec 8 | -------------------------------------------------------------------------------- /Applications/Specware/Handwritten/Lisp/ProvideSpecwareRuntime.lisp: -------------------------------------------------------------------------------- 1 | (warn "THIS VERSION OF ProvideSpecwareRuntime.lisp IS DEPRECATED -- real version now in Specware4/Library/Base/Handwritten/Lisp/") 2 | 3 | (provide "SpecwareRuntime") -------------------------------------------------------------------------------- /Applications/Specware/Handwritten/Lisp/StartShell.lisp: -------------------------------------------------------------------------------- 1 | (SWShell::specware-shell nil) 2 | -------------------------------------------------------------------------------- /Applications/Specware/ProverCommands.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecwareShell qualifying spec 4 | 5 | import CommandParser 6 | 7 | end-spec 8 | -------------------------------------------------------------------------------- /Applications/Specware/SpecwareCommands.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecwareShell qualifying spec 4 | 5 | import CommandParser 6 | 7 | end-spec 8 | -------------------------------------------------------------------------------- /Applications/Specware/SpecwareLispFiles.tgz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Applications/Specware/SpecwareLispFiles.tgz -------------------------------------------------------------------------------- /Applications/Specware/UI/Emacs/Handwritten/Lisp/system.lisp: -------------------------------------------------------------------------------- 1 | ;; (compile-and-load-lisp-file "refine-compat") 2 | ;; (compile-and-load-lisp-file "snark-menu") 3 | (Specware::compile-and-load-lisp-file "emacs-utils") 4 | -------------------------------------------------------------------------------- /Applications/Specware/WizardCommands.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecwareShell qualifying spec 4 | 5 | import CommandParser 6 | 7 | end-spec 8 | -------------------------------------------------------------------------------- /Applications/Specware/bin/unix/bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | 3 | SCRIPT_DIR=`/usr/bin/dirname $0` 4 | cd -P $SCRIPT_DIR 5 | SCRIPT_DIR=`pwd` 6 | 7 | if [ "$1" == "" ]; then 8 | export LISP_MODE=SBCL 9 | else 10 | export LISP_MODE=$1 11 | fi 12 | 13 | $SCRIPT_DIR/Bootstrap_Specware $LISP_MODE 14 | RC=$? 15 | 16 | if [ $RC -ne 0 ]; then 17 | echo "Failure preparing bootstrap image, return code = $RC" 18 | exit $RC 19 | fi 20 | 21 | exit 0 22 | 23 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/bootstrap-specware.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call Run_Emacs bootstrap-specware4 4 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/build-specware.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call Run_Emacs compile-build-specware4 4 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/compile-specware-lisp.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call Run_Emacs just-compile-specware4 4 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/generate-specware-lisp.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call Run_Emacs just-generate-specware4 4 | 5 | 6 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/specware-shell.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | 4 | rem call check-and-set-environment 5 | call Set_Environment_Vars 6 | 7 | 8 | rem Start Specware shell within Lisp shell: 9 | 10 | start "ignore" "%LISP_EXECUTABLE%" +t "Specware Shell" +s "%SPECWARE4%\Applications\Specware\Handwritten\Lisp\StartShell.lisp" -I "%LISP_HEAP_IMAGE%" -e "(setq Emacs::*use-emacs-interface?* nil)" 11 | 12 | -------------------------------------------------------------------------------- /Applications/Specware/bin/windows/specware.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | call Run_Emacs run-specware4 4 | 5 | -------------------------------------------------------------------------------- /Applications/Specware/lisp/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /Examples/Misc/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Examples_Misc" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | TwoMorphisms_CheckRqmtsC 8 | -------------------------------------------------------------------------------- /Examples/Misc/TinyTransformShellTest.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | TinyTransformShellTest = spec 4 | theorem plus_0 is fa (x) x + 0 = x 5 | op f (x:Nat) : Nat = x + 0 6 | endspec 7 | -------------------------------------------------------------------------------- /Examples/Morphisms/Double.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %% A simple morphism example. 4 | 5 | A = spec 6 | op double (x:Nat) : Nat = x + x 7 | end-spec 8 | 9 | B = spec 10 | op double (x:Nat) : Nat = 2 * x 11 | end-spec 12 | 13 | M = morphism A -> B {} 14 | 15 | 16 | proof isa double_def 17 | by(auto simp add: double_def) 18 | end-proof 19 | 20 | -------------------------------------------------------------------------------- /Examples/Morphisms/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Examples_Morphisms" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | Double_M Double2_M Double3_M 8 | -------------------------------------------------------------------------------- /Examples/Specware-Overview/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Examples_SpecwareOverview" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | DivideAndConquer_Algorithm MergeSort_M 8 | -------------------------------------------------------------------------------- /Examples/Specware-Overview/hello_world.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | 4 | HelloWorld = spec 5 | import /Library/Legacy/Utilities/System 6 | 7 | op hello () : () = 8 | writeLine "Hello World!" 9 | end-spec 10 | -------------------------------------------------------------------------------- /Examples/Transformations/Simple/copyOpExample.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | A = spec 4 | import /Library/Base/Empty 5 | type foo 6 | op bar : foo -> foo 7 | end-spec 8 | 9 | B = transform A by {copyOp bar} 10 | -------------------------------------------------------------------------------- /Examples/Transformations/Simple/copySpecExample.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %% Example application of a trivial identity transformation on specs. 4 | 5 | A = spec 6 | op f : Nat 7 | end-spec 8 | 9 | %% Creates spec B, identical to spec A. 10 | B = A{copySpec} -------------------------------------------------------------------------------- /Examples/Transformations/Simple/makeImportingSpecExample.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | A = spec 4 | op f : Nat 5 | end-spec 6 | 7 | B=A{makeImportingSpec} -------------------------------------------------------------------------------- /Examples/Tutorial/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Examples_Tutorial" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | REPLACETHIS 8 | -------------------------------------------------------------------------------- /Icons/Kestrel.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/Kestrel.icns -------------------------------------------------------------------------------- /Icons/KestrelBird.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/KestrelBird.gif -------------------------------------------------------------------------------- /Icons/KestrelBird_Specware.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/KestrelBird_Specware.png -------------------------------------------------------------------------------- /Icons/S.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/S.ico -------------------------------------------------------------------------------- /Icons/kestrel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/kestrel.png -------------------------------------------------------------------------------- /Icons/kestrel.ppm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/kestrel.ppm -------------------------------------------------------------------------------- /Icons/kestrel_down.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/kestrel_down.png -------------------------------------------------------------------------------- /Icons/specware.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware.ico -------------------------------------------------------------------------------- /Icons/specware_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware_icon.gif -------------------------------------------------------------------------------- /Icons/specware_icon_trans_1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware_icon_trans_1.gif -------------------------------------------------------------------------------- /Icons/specware_icon_trans_2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware_icon_trans_2.gif -------------------------------------------------------------------------------- /Icons/specware_icon_trans_48.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware_icon_trans_48.gif -------------------------------------------------------------------------------- /Icons/specware_logo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Icons/specware_logo.gif -------------------------------------------------------------------------------- /Languages/ACL2/AbstractSyntax.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | AbstractSyntax qualifying spec 4 | 5 | type SExp = 6 | | Atom String 7 | | Cons SExp * SExp 8 | 9 | end-spec -------------------------------------------------------------------------------- /Languages/ACL2/PPAbstractSyntax.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | PPAbstractSyntax qualifying spec 4 | 5 | import AbstractSyntax 6 | 7 | end-spec -------------------------------------------------------------------------------- /Languages/Grammars/NonTerminal.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | 4 | NonTerminal = CFG qualifying spec 5 | 6 | type NonTerminal 7 | 8 | op nonTerminal (s : String) : NonTerminal 9 | 10 | end-spec 11 | 12 | 13 | 14 | NonTerminalAsString = CFG qualifying spec 15 | 16 | type NonTerminal = String 17 | 18 | op nonTerminal (s : String) : NonTerminal = s 19 | 20 | end-spec 21 | 22 | 23 | 24 | NonTerminalAsStringM = morphism NonTerminal -> NonTerminalAsString {} 25 | -------------------------------------------------------------------------------- /Languages/MetaSlang/CodeGen/Handwritten/Lisp/OLD/ms-to-x-rules.lisp: -------------------------------------------------------------------------------- 1 | ;;; -*- Mode: LISP; Package: Specware; Base: 10; Syntax: Common-Lisp -*- 2 | 3 | (defpackage :SpecCalc (:use :COMMON-LISP-USER)) 4 | (defpackage :LM (:use :COMMON-LISP-USER)) 5 | (in-package :Parser4) 6 | 7 | 8 | ;;; Source is MetaSlang 9 | 10 | (define-lm-parser-rule :Source_Id :MS_Id) 11 | (define-lm-parser-rule :Source_Name :MS_Name) 12 | 13 | (define-lm-parser-rule :Target_Id :Simple_Id) 14 | (define-lm-parser-rule :Target_Name :Simple_Name) 15 | -------------------------------------------------------------------------------- /Languages/MetaSlang/CodeGen/Handwritten/Lisp/load.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl-user) 2 | 3 | (Specware::make-system ".") 4 | 5 | -------------------------------------------------------------------------------- /Languages/MetaSlang/CodeGen/Java/JCG.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Languages/MetaSlang/CodeGen/Java/JCG.doc -------------------------------------------------------------------------------- /Languages/MetaSlang/Transformations/MergeRules.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import MergeRules/MetaProgram 5 | 6 | endspec 7 | 8 | 9 | -------------------------------------------------------------------------------- /Languages/SpecCalculus/Parser/Handwritten/Lisp/load.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl-user) 2 | 3 | (Specware::make-system ".") 4 | 5 | (defun foo () (parser4::parseSpecwareFile "Test.spec")) 6 | -------------------------------------------------------------------------------- /Languages/SpecCalculus/Semantics/ValueSig.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecCalc qualifying spec 4 | { 5 | type ValueInfo 6 | } 7 | -------------------------------------------------------------------------------- /Languages/SpecCalculus/Semantics/Wizard.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecCalc qualifying spec 4 | %def specwareWizard? : Bool = false % doing this makes CMUCL compiler treat as a constant! 5 | op specwareWizard? : Bool % see Specware4/Applications/Handwritten/Lisp/meta-slang-runtime.lisp 6 | endspec 7 | -------------------------------------------------------------------------------- /Languages/Utilities/Pedigree.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | Notes qualifying spec 4 | { 5 | type Pedigree = String % TODO: This should be structured 6 | } 7 | -------------------------------------------------------------------------------- /Languages/XML/Parser/XML_Parser_Base.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | 4 | XML qualifying spec 5 | import XML_Parser_Monad 6 | import ../Utilities/XML_Unicode 7 | import ../XML_Sig 8 | 9 | type Possible X = Env (Option X * UChars) 10 | type Required X = Env ( X * UChars) 11 | 12 | 13 | endspec -------------------------------------------------------------------------------- /Library/AlgorithmTheories/AlgorithmTaxonomy.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/AlgorithmTheories/AlgorithmTaxonomy.pdf -------------------------------------------------------------------------------- /Library/Algorithms/Parsing/Chart/Handwritten/Lisp/parser-package.lisp: -------------------------------------------------------------------------------- 1 | ;;; -*- Mode: LISP; Package: User; Base: 10; Syntax: Common-Lisp -*- 2 | 3 | (in-package :cl-user) 4 | 5 | (defpackage :Parser4 6 | (:use :common-lisp) 7 | (:export :*VERBOSE?* 8 | :WHEN-DEBUGGING 9 | :DEFINE-SW-PARSER-RULE 10 | :PARSE-SESSION-GAPS 11 | :PARSE-SESSION-ERROR-REPORTED? 12 | :PARSE-SESSION-RESULTS 13 | :PARSE-FILE)) 14 | 15 | (in-package :Parser4) 16 | 17 | -------------------------------------------------------------------------------- /Library/Base/All.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Empty 5 | import IsabelleExtensions 6 | import Boolean 7 | import Function 8 | import Compare 9 | import Integer 10 | import Option 11 | import Character 12 | import List 13 | import String 14 | 15 | import String_Executable 16 | import List_Executable 17 | import Integer_Executable 18 | end-spec 19 | -------------------------------------------------------------------------------- /Library/Base/Handwritten/Lisp/Character.lisp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/Base/Handwritten/Lisp/Character.lisp -------------------------------------------------------------------------------- /Library/Base/Handwritten/Lisp/ProvideSpecwareRuntime.lisp: -------------------------------------------------------------------------------- 1 | 2 | (provide "SpecwareRuntime") -------------------------------------------------------------------------------- /Library/Base/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Library_Base" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | All 8 | -------------------------------------------------------------------------------- /Library/Base/Sum.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | Sum qualifying spec 4 | 5 | type Sum (a,b) = | Left a | Right b 6 | 7 | op [a,b] left? : Sum (a,b) -> Bool = embed? Left 8 | op [a,b] right? : Sum (a,b) -> Bool = embed? Right 9 | 10 | op [a,b,c] mapSum (fl : a -> c, fr : b -> c) (s : Sum (a,b)) : c = 11 | case s of 12 | | Left l -> fl l 13 | | Right r -> fr r 14 | 15 | % FIXME: prove functor and/or monad laws...? 16 | 17 | end-spec 18 | -------------------------------------------------------------------------------- /Library/Base/structure.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/Base/structure.ppt -------------------------------------------------------------------------------- /Library/CGen/Deep/All.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import C 5 | import CPrettyPrinter 6 | import CPrettyPrinter_Tests 7 | end-spec -------------------------------------------------------------------------------- /Library/CGen/Examples/LibExt.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | (* This file contains some candidate extensions of the Specware library. *) 4 | 5 | spec 6 | 7 | import /Library/General/OptionExt 8 | import /Library/General/Map 9 | import /Library/General/EndoRelation 10 | 11 | theorem optionEqSome is [a] 12 | fa (x:Option a, y:a) 13 | x = Some y <=> x ~= None && y = unwrap x 14 | 15 | endspec 16 | -------------------------------------------------------------------------------- /Library/CGen/README.txt: -------------------------------------------------------------------------------- 1 | This library deals with the generation of C code from Specware specs via 2 | stepwise refinement. 3 | -------------------------------------------------------------------------------- /Library/CGen/Shallow/All.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | 5 | % TODO: Maybe deprecate this file and just proc the individual files? 6 | 7 | import CGenShallowAllIsa 8 | import CTargetExamples#Example10 9 | import CTargetExamples#Example11 10 | % I guess some of these are incompatible: 11 | %import Arrays#Array 12 | %import Arrays#Array1 13 | %import Arrays#Array1a 14 | %import Arrays#Array2 15 | import Arrays#Array2a 16 | import Imp 17 | 18 | end-spec 19 | -------------------------------------------------------------------------------- /Library/CGen/Shallow/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Library_CGen_Shallow" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | CGenShallowAllIsa 8 | -------------------------------------------------------------------------------- /Library/DataStructures/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Library_DataStructures" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | MapsAsSets_M SetsAsMaps_M SetsAsBagMaps_M StacksAsCoproducts_M StacksAsLists_M SetsAsBags_M BagsAsLists_M BagsAsMaps_M MapsAsSTHTables_M MapsAsVectors_M AllIsa 8 | -------------------------------------------------------------------------------- /Library/DataStructures/SetsAsSTHTables0.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %% Why the "0" in this name? 4 | SetsAsSTHTables0 = SetsAsBagMaps[MapsAsSTHTables#M] 5 | 6 | M = morphism Sets -> SetsAsSTHTables0 {Set._ +-> SetsAsBags._} -------------------------------------------------------------------------------- /Library/General/FiniteMapAsList.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | % substitution: 4 | FiniteMapAsFiniteSet[FiniteSetAsListMorphism] 5 | -------------------------------------------------------------------------------- /Library/General/FiniteMapAsListMorphism.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism FiniteMap -> FiniteMapAsList {} 4 | -------------------------------------------------------------------------------- /Library/General/IntegerExt_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | % What does this actually do? Note that IntegerExt_ExecOps contains refine defs! 4 | % This is used in at least two projects... 5 | morphism /Library/General/IntegerExt -> /Library/General/IntegerExt_ExecOps {} -------------------------------------------------------------------------------- /Library/General/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Library_General" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | FiniteMapAsFiniteSetMorphism FiniteSetAsListMorphism 8 | -------------------------------------------------------------------------------- /Library/General/ListExt_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism /Library/General/ListExt -> /Library/General/ListExt_ExecOps {} -------------------------------------------------------------------------------- /Library/General/Pred.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | Pred qualifying spec %% "Predicate" is already the name of an Isabelle theory? 4 | 5 | type Predicate a = a -> Bool 6 | 7 | %% Lift negation to predicates: 8 | op [a] ~~ (p:Predicate a) : Predicate a = fn x:a -> ~ (p x) 9 | 10 | proof Isa Thy_Morphism 11 | Pred.~~ -> - 12 | end-proof 13 | 14 | 15 | end-spec 16 | -------------------------------------------------------------------------------- /Library/General/TwosComplementNumber_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism /Library/General/TwosComplementNumber -> /Library/General/TwosComplementNumber_ExecOps {} -------------------------------------------------------------------------------- /Library/General/structure.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/General/structure.ppt -------------------------------------------------------------------------------- /Library/Haskell/Boolean.hs: -------------------------------------------------------------------------------- 1 | module Boolean ( module Boolean ) where 2 | 3 | (~~~) :: (a -> Bool) -> a -> Bool 4 | (~~~) p x = not (p x) 5 | 6 | (&&&) :: (a -> Bool) -> (a -> Bool) -> a -> Bool 7 | infixr 6 &&& 8 | (p1 &&& p2) x = p1 x && p2 x 9 | 10 | (|||) :: (a -> Bool) -> (a -> Bool) -> a -> Bool 11 | infixr 5 ||| 12 | (p1 ||| p2) x = p1 x || p2 x 13 | 14 | bool__TRUE :: a -> Bool 15 | bool__TRUE x = True 16 | 17 | bool__FALSE :: a -> Bool 18 | bool__FALSE x = False -------------------------------------------------------------------------------- /Library/Haskell/Compare.hs: -------------------------------------------------------------------------------- 1 | module Compare ( module Compare, module Boolean ) where 2 | import Boolean 3 | -------------------------------------------------------------------------------- /Library/Haskell/Empty.hs: -------------------------------------------------------------------------------- 1 | module Empty ( module Empty ) where 2 | -------------------------------------------------------------------------------- /Library/Haskell/SW_Base.hs: -------------------------------------------------------------------------------- 1 | module SW_Base ( module SW_Base, module Empty, module SW_String ) where 2 | import Empty 3 | import SW_String 4 | -------------------------------------------------------------------------------- /Library/Haskell/SW_Char.hs: -------------------------------------------------------------------------------- 1 | module SW_Char ( module SW_Char, module SW_Integer, module Char ) where 2 | import SW_Integer 3 | import Char 4 | -------------------------------------------------------------------------------- /Library/IO/Emacs/files.el: -------------------------------------------------------------------------------- 1 | 2 | ;; Files 3 | 4 | (defconst sw:specware-emacs-files 5 | '("sw-refine-utils" 6 | "sw-eli-patches" 7 | "compat" ; moved up from end so sw:eval-in-lisp will be defined for sw-interface.el 8 | "sw-interface" 9 | "sw-start" 10 | ;"sw-msp-emacs" 11 | ;"sw-utilities" 12 | ;"x-symbol-specware" 13 | "specware-mode" 14 | "sw-init" 15 | "sw-font" 16 | ;"make-patch-file" 17 | )) 18 | 19 | -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/.gitref: -------------------------------------------------------------------------------- 1 | cf30941e5858e93eb91574ad91499075222a447b -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/contrib/slime-listener-hooks.el: -------------------------------------------------------------------------------- 1 | (require 'slime) 2 | (require 'cl-lib) 3 | 4 | (define-slime-contrib slime-listener-hooks 5 | "Enable slime integration in an application'w event loop" 6 | (:authors "Alan Ruttenberg , R. Mattes ") 7 | (:license "GPL") 8 | (:slime-dependencies slime-repl) 9 | (:swank-dependencies swank-listener-hooks)) 10 | 11 | (provide 'slime-listener-hooks) 12 | -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/contrib/slime-xref-browser.el: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/IO/Emacs/slime/contrib/slime-xref-browser.el -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/doc/.cvsignore: -------------------------------------------------------------------------------- 1 | contributors.texi 2 | slime.aux 3 | slime.cp 4 | slime.dvi 5 | slime.fn 6 | slime.fns 7 | slime.info 8 | slime.ky 9 | slime.kys 10 | slime.log 11 | slime.pdf 12 | slime.pg 13 | slime.ps 14 | slime.tmp 15 | slime.toc 16 | slime.tp 17 | slime.vr 18 | slime.vrs 19 | slime.html 20 | html 21 | html.tgz 22 | -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/doc/slime-refcard.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/IO/Emacs/slime/doc/slime-refcard.pdf -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/doc/slime-small.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/IO/Emacs/slime/doc/slime-small.pdf -------------------------------------------------------------------------------- /Library/IO/Emacs/slime/lib/.nosearch: -------------------------------------------------------------------------------- 1 | ;; normal-top-level-add-subdirs-to-load-path needs this file 2 | -------------------------------------------------------------------------------- /Library/IO/Emacs/specware-mode.el: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/IO/Emacs/specware-mode.el -------------------------------------------------------------------------------- /Library/IO/Emacs/sw-eli-patches.el: -------------------------------------------------------------------------------- 1 | 2 | ;;; Changes to the Franz Emacs Lisp Interface 3 | 4 | 5 | 6 | ;;; various allegro-specific stuff moved to franz-archive.el 7 | 8 | -------------------------------------------------------------------------------- /Library/Isa/ROOT: -------------------------------------------------------------------------------- 1 | session "Specware_Library" = "HOL" + 2 | options [quick_and_dirty] 3 | sessions 4 | "HOL-Library" 5 | "HOL-Computational_Algebra" 6 | theories 7 | LibraryAllIsa 8 | -------------------------------------------------------------------------------- /Library/Legacy/DataStructures/ErrorMonad.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %%% not used? 4 | 5 | ErrorMonad qualifying spec { 6 | type Result a = | Ok a | Error String 7 | } 8 | -------------------------------------------------------------------------------- /Library/Legacy/DataStructures/HashTable.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | HashTable qualifying spec 4 | 5 | type HashTable(A,B) 6 | 7 | % In Common Lisp, these are the only hash table tests allowed. 8 | type Test = | EQ | EQL | EQUAL | EQUALP 9 | 10 | op initialize : [A,B] Test * Nat -> HashTable (A,B) 11 | op insert : [A,B] A * B * HashTable (A,B) -> () 12 | op lookup : [A,B] A * HashTable (A,B) -> Option B 13 | endspec 14 | 15 | -------------------------------------------------------------------------------- /Library/Legacy/Utilities/Handwritten/Lisp/State.lisp: -------------------------------------------------------------------------------- 1 | (defpackage :State) 2 | (in-package :State) 3 | 4 | (defun ref (x) 5 | (cons :|Ref| x)) 6 | 7 | (defun mkRef (x) 8 | (cons :|Ref| x)) 9 | 10 | (defun |:=-2| (x y) 11 | (rplacd x y)) 12 | 13 | ;; (define-compiler-macro |:=-2| (x y) 14 | ;; `(rplacd ,x ,y)) 15 | 16 | (defun |!!| (x) (cdr x)) 17 | -------------------------------------------------------------------------------- /Library/Legacy/Utilities/State.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | (* State Primitives *) 4 | 5 | (* This should be used sparingly! *) 6 | 7 | State qualifying spec 8 | type Ref T = | Ref T 9 | 10 | op [T] mkRef: T -> Ref T 11 | 12 | op := infixl 4 : [T] Ref T * T -> () 13 | op ! : [T] Ref T -> T 14 | 15 | % def := (cell,value) = () 16 | % def !(x) = case x of ref(y) => y end 17 | endspec 18 | -------------------------------------------------------------------------------- /Library/LibraryAllIsa.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Base/All 5 | import General/AllIsa 6 | import CGen/Shallow/CGenShallowAllIsa 7 | %% import DataStructures/AllIsa %% this is (and must be) tested separately 8 | end-spec 9 | -------------------------------------------------------------------------------- /Library/Math/LinearOrder.sw: -------------------------------------------------------------------------------- 1 | LinearOrder = spec 2 | 3 | import PartialOrder 4 | 5 | axiom comparability is 6 | fa(a:A, b:A) a <= b || b <= a 7 | 8 | end-spec 9 | -------------------------------------------------------------------------------- /Library/Math/Orders.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | 5 | op [a] reflexive?(binop: a*a->Bool):Bool = 6 | fa(x:a) binop(x,x) 7 | 8 | end-spec 9 | -------------------------------------------------------------------------------- /Library/Math/PartialOrder1.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | 5 | type A 6 | op <= infixl 20 : A * A -> Bool 7 | 8 | axiom reflexive_le is 9 | fa(a:A) a<=a 10 | 11 | axiom transitive_le is 12 | fa(a:A,b:A,c:A)(a<=b && b<=c => c<=a) 13 | 14 | axiom antisymmetric_le is 15 | fa(a:A,b:A)(a<=b && b<=a => a=b) 16 | 17 | op monotone: (A->A) -> Bool 18 | axiom def_of_monotone is 19 | fa(a1:A,a2:A,f:A->A)(a1<=a2 => f(a1)<=f(a2)) 20 | 21 | end-spec 22 | -------------------------------------------------------------------------------- /Library/ProverBase/Option.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | Option qualifying spec 4 | 5 | import ../Base/Option 6 | 7 | endspec 8 | -------------------------------------------------------------------------------- /Library/ProverBase/Top.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Char 5 | import Compare 6 | import Functions 7 | import Integer 8 | import List 9 | % import Nat 10 | import Option 11 | import String 12 | % import System 13 | endspec 14 | -------------------------------------------------------------------------------- /Library/Structures/Data/Collections/Enum.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Enumerable Collections} 4 | 5 | An enumeration on a collection is characterized by a refinement of 6 | the operator \Op{takeOne} defined below. 7 | 8 | Need the axioms. 9 | 10 | \begin{spec} 11 | spec 12 | import ../Collections 13 | 14 | type TakeResult = | None | One (Elem * Collection) 15 | op takeOne : Collection -> TakeResult 16 | endspec 17 | \end{spec} 18 | -------------------------------------------------------------------------------- /Library/Structures/Data/Collections/Finite.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Finite Collections} 4 | 5 | Any finite collection is enumerable. If it is finite we believe that it can 6 | be printed. 7 | 8 | \begin{spec} 9 | spec 10 | import Enum 11 | import Fold 12 | import FoldLeft 13 | import FoldRight 14 | 15 | op size : Collection -> Nat 16 | 17 | op pp : Collection -> Doc 18 | op show : Collection -> String 19 | endspec 20 | \end{spec} 21 | -------------------------------------------------------------------------------- /Library/Structures/Data/Collections/FoldLeft.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Fold Left over an Enumerable Collection} 4 | 5 | For an enumeration characterized by \Op{takeOne}, we define 6 | a left fold operation on the collection. 7 | 8 | \begin{spec} 9 | spec 10 | import Enum 11 | 12 | op foldl : fa (a) (a * Elem -> a) * a * Collection -> a 13 | endspec 14 | \end{spec} 15 | -------------------------------------------------------------------------------- /Library/Structures/Data/Collections/FoldRight.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Fold Right over an Enumerable Collection} 4 | 5 | For an enumeration characterized by \Op{takeOne}, we define 6 | a right fold operation on the collection. 7 | 8 | \begin{spec} 9 | spec 10 | import Enum 11 | 12 | op foldr : fa (a) (a * Elem -> a) * a * Collection -> a 13 | endspec 14 | \end{spec} 15 | -------------------------------------------------------------------------------- /Library/Structures/Data/Elem.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Set Parameter} 4 | 5 | This is the type parameter to all collections including sets, maps and bags. 6 | 7 | \begin{spec} 8 | spec 9 | import Pretty 10 | 11 | type Elem 12 | 13 | op pp : Elem -> Doc 14 | op show : Elem -> String 15 | endspec 16 | \end{spec} 17 | -------------------------------------------------------------------------------- /Library/Structures/Data/Maps/Cod.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %% Codomain Type of a Monomorphic Map 4 | 5 | %% This spec is the ``parameter'' to monomorphic maps defining the 6 | %% type of the codomain of the maps. 7 | 8 | spec 9 | import /Library/PrettyPrinter/WadlerLindig 10 | 11 | type Cod 12 | op ppCod : Cod -> WLPretty 13 | end-spec 14 | -------------------------------------------------------------------------------- /Library/Structures/Data/Maps/Dom.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | %% Domain of a Monomorphic Map 4 | 5 | %% This spec is the ``parameter'' to monomorphic maps defining the 6 | %% type of the domain of the maps. 7 | 8 | spec 9 | import /Library/PrettyPrinter/WadlerLindig 10 | 11 | type Dom 12 | op ppDom : Dom -> WLPretty 13 | end-spec 14 | -------------------------------------------------------------------------------- /Library/Structures/Data/Maps/Monadic/Polymorphic.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import /Library/Structures/Data/Monad 5 | 6 | type MapRef (a,b) 7 | 8 | op new : fa (a,b) Monad (MapRef (a,b)) 9 | op copy : fa (a,b) MapRef (a,b) -> Monad (MapRef (a,b)) 10 | op eval : fa (a,b) MapRef (a,b) * a -> Monad b 11 | op update : fa (a,b) MapRef (a,b) * a * b -> Monad () 12 | op fold : fa (a,b,c) (c * (a * b) -> Monad c) * c * MapRef (a,b) -> Monad b 13 | endspec 14 | -------------------------------------------------------------------------------- /Library/Structures/Data/Monad/Handwritten/Lisp/State.dfsl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Library/Structures/Data/Monad/Handwritten/Lisp/State.dfsl -------------------------------------------------------------------------------- /Library/Structures/Data/QuotientSets/Monomorphic/AsListOfLists.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import ../Monomorphic 5 | 6 | type QuotientSet = List EquivalenceClass % quotient as list 7 | type EquivalenceClass = List Element % equivalence class as list 8 | 9 | def class_member (x : Element, y : EquivalenceClass) = x in? y 10 | def qset_member (y : EquivalenceClass, z : QuotientSet) = y in? z 11 | 12 | endspec 13 | -------------------------------------------------------------------------------- /Library/Structures/Data/Sets/Elem.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | \section{Set Parameter} 4 | 5 | This spec to be deprecated. See ../Elem.sw instead. 6 | 7 | This is the type parameter to monomorphic sets. 8 | 9 | \begin{spec} 10 | Elem qualifying spec 11 | import /Library/PrettyPrinter/WadlerLindig 12 | 13 | type Elem 14 | op pp : Elem -> WLPretty 15 | end-spec 16 | \end{spec} 17 | -------------------------------------------------------------------------------- /Library/Structures/Data/Sets/Enum.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import translate ../Collections/Enum by {Collection +-> Set} 5 | import ../Sets 6 | endspec 7 | -------------------------------------------------------------------------------- /Library/Unvetted/Random.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | System qualifying spec 4 | 5 | op random : Nat -> Nat 6 | 7 | endspec 8 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | 2 | #Applications/Specware/bin/unix/Specware4.sbclexe: 3 | bootstrap: 4 | bin/bootstrap 5 | 6 | clean: 7 | rm -f Applications/Specware/lisp/*.lisp 8 | find . -name \*.sfsl -print | xargs rm -f 9 | 10 | realclean: clean 11 | rm -f Applications/Specware/bin/unix/Specware4.sbclexe 12 | -------------------------------------------------------------------------------- /Provers/DCProof/Exceptions.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | 5 | type Exception 6 | 7 | endspec 8 | -------------------------------------------------------------------------------- /Provers/DCProof/GoalsI.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | I = spec 4 | 5 | import GoalsA 6 | 7 | type Goals.Goal = Expr.Expression 8 | 9 | def Goals.print = Expr.print 10 | 11 | def Goals.goalExpr (g) = g 12 | 13 | def Goals.addConc(e, g) = e 14 | 15 | endspec 16 | 17 | 18 | GoalExprInterface = morphism GoalsA -> I {} 19 | GoalsImpl1 = (GoalsA)[GoalExprInterface] -------------------------------------------------------------------------------- /Provers/DCProof/MSProver0.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import MS qualifying (ReadEvalPrint[/Library/General/FiniteSequencesAsListsMorphism][GoalsI#GoalExprInterface][ExtExpressionImpl#MSExprInterface]) 5 | 6 | def MSProof = MS.testProof 7 | endspec -------------------------------------------------------------------------------- /Provers/DCProof/PC1Prover0.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import (ReadEvalPrint[GoalsI#GoalExprInterface][ExtAC1Expr#ACExprInterface][/Provers/ProofDebugger/ProofChecker#Refinement])%[/Library/General/FiniteSequencesAsListsMorphism] 5 | 6 | def PC1Proof = testProof 7 | 8 | endspec 9 | -------------------------------------------------------------------------------- /Provers/DCProof/PCProver0.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import (ReadEvalPrint[GoalsI#GoalExprInterface][ExtACExpr#ACExprInterface][/Provers/ProofDebugger/ProofChecker#Refinement])%[/Library/General/FiniteSequencesAsListsMorphism] 5 | 6 | def PCProof = testProof 7 | 8 | endspec 9 | -------------------------------------------------------------------------------- /Provers/DCProof/ProofGoalsImpl.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | I = spec 4 | 5 | import GoalsA 6 | 7 | type Goals.Goal = Expr.Expression 8 | 9 | def Goals.goalExpr (g) = g 10 | 11 | def Goals.addConc(e, g) = e 12 | 13 | endspec 14 | 15 | 16 | GoalExprInterface = morphism GoalsA -> I {} 17 | GoalsImpl1 = (GoalsA)[GoalExprInterface] -------------------------------------------------------------------------------- /Provers/DCProof/SeqProver0.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Seq qualifying (ReadEvalPrint[GoalsS#GoalSequentInterface][ExtACExpr#ACExprInterface][/Provers/ProofDebugger/ProofChecker#Refinement]) 5 | 6 | def SeqProof = Seq.testProof 7 | endspec -------------------------------------------------------------------------------- /Provers/DCProof/States.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | 5 | import ExtProofsAPI 6 | 7 | type Tree a 8 | op empty: [a] Tree a 9 | 10 | op addSubTreeo: Tree * 11 | 12 | type Context 13 | type Goal 14 | 15 | type State 16 | op context: State -> Context 17 | op tree: State -> Tree(Goal) 18 | 19 | op initialState: State 20 | axiom initialStateTree is tree(initialState) = empty 21 | 22 | 23 | endspec 24 | -------------------------------------------------------------------------------- /Provers/DP/SATDPSig.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SAT qualifying spec 4 | 5 | import SATFormula 6 | 7 | op isDecidable?: Formula -> Bool 8 | type DPTerm = {f: Formula | isDecidable? f} 9 | op DPFalse: DPTerm 10 | op DPRefute?: List DPTerm -> DPResult 11 | 12 | type DPResult = | Proved | CounterExample CounterExample 13 | 14 | type CounterExample = List Formula 15 | 16 | 17 | endspec 18 | -------------------------------------------------------------------------------- /Provers/DP/SATFormula.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SAT qualifying spec 4 | 5 | type Formula 6 | 7 | endspec 8 | -------------------------------------------------------------------------------- /Provers/DP/SATSigDP.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SAT qualifying spec 4 | 5 | import SATFormula 6 | 7 | op isDecidable?: Formula -> Bool 8 | type DPTerm = {f: Formula | isDecidable? f} 9 | op DPFalse: DPTerm 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /Provers/Proof.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | SpecCalc qualifying spec 4 | 5 | import /Languages/SpecCalculus/AbstractSyntax/Types 6 | 7 | type ProofStatus = | Proved | Unproved | Untried 8 | type SCProof = {status: ProofStatus, unit: UnitId} 9 | 10 | endspec 11 | 12 | -------------------------------------------------------------------------------- /Provers/ProofChecker/CheckerAndOtherAbbreviations.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Checker, OtherAbbreviations 5 | endspec 6 | -------------------------------------------------------------------------------- /Provers/ProofChecker/OtherAbbreviations_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism OtherAbbreviations -> OtherAbbreviations_Executable {} 4 | -------------------------------------------------------------------------------- /Provers/ProofChecker/Primitives_Instantiation.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism Primitives -> Primitives_Instantiated {} 4 | -------------------------------------------------------------------------------- /Provers/ProofChecker/Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism Spec -> Implementation 4 | %% use same mappings as in /Library/General/FiniteSequencesAsListsMorphism 5 | {} 6 | % {FSeq.++ +-> List.++, 7 | % FSeq.length +-> List.length, 8 | % FSeq.foldr +-> List.foldr, 9 | % FSeq.map +-> List.map, 10 | % FSeq.filter +-> List.filter, 11 | % FSeq.flatten +-> List.flatten} 12 | -------------------------------------------------------------------------------- /Provers/ProofChecker/Spec.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | MetaslangProofChecker qualifying spec 4 | 5 | (* This is the top-level spec of the proof checker, the only spec in this 6 | directory that can be imported by external code that uses the proof 7 | checker. *) 8 | 9 | import CheckerAndOtherAbbreviations[Primitives_Instantiation] 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /Provers/ProofChecker/Test/Null.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | endspec 5 | -------------------------------------------------------------------------------- /Provers/ProofChecker/dependencies.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Provers/ProofChecker/dependencies.pdf -------------------------------------------------------------------------------- /Provers/ProofChecker/dependencies.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Provers/ProofChecker/dependencies.ppt -------------------------------------------------------------------------------- /Provers/ProofDebugger/Implementation.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofDebugger qualifying spec 4 | 5 | (* This is an executable version of spec Spec. Since all the specs that 6 | currently comprise the proof debugger are executable, we only need to refine 7 | the proof checker, which is imported by the proof debugger. *) 8 | 9 | import Spec[ProofChecker#Refinement] 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /Provers/ProofDebugger/ProofChecker.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | (* This file encapsulates the references to the public spec and morphism of 4 | the proof checker. In case the proof checker is moved elsewhere, only this 5 | file needs to be updated; the rest of the proof debugger is stable (in this 6 | respect), thanks to this referential indirection. *) 7 | 8 | Spec = ../ProofChecker/Spec 9 | Refinement = ../ProofChecker/Refinement 10 | -------------------------------------------------------------------------------- /Provers/ProofDebugger/Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism Spec -> Implementation 4 | %% use same mappings as in /Library/General/FiniteSequencesAsListsMorphism 5 | {FSeq.++ +-> List.++, 6 | FSeq.length +-> List.length, 7 | FSeq.foldr +-> List.foldr, 8 | FSeq.map +-> List.map, 9 | FSeq.filter +-> List.filter, 10 | FSeq.flatten +-> List.flatten} 11 | -------------------------------------------------------------------------------- /Provers/ProofDebugger/Spec.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofDebugger qualifying spec 4 | 5 | (* This is the top-level spec of the proof debugger, the only spec in this 6 | directory that can be imported by external code that uses the proof 7 | debugger. *) 8 | 9 | import Printer, AbbreviationContractor 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/ContextProofsI.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import ContextProofs[UniqueVars_Refinement][UniqueAxiomNames_Refinement][../ProofChecker/Refinement] 5 | endspec 6 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/ProofGenSig.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofGenerator qualifying 4 | spec 5 | 6 | import ../ProofChecker/Spec 7 | 8 | op typeExpProof: Proof * Context * Expression -> Proof * Type 9 | op contextProof: Context -> Proof 10 | op typeProof: Proof * Context * Type -> Proof 11 | 12 | 13 | endspec 14 | 15 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueAxiomNames.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofGenerator qualifying 4 | spec 5 | 6 | import ../ProofChecker/Spec 7 | 8 | op newAxiomName: Context * AxiomName -> AxiomName 9 | def newAxiomName(cx, an) = an 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueAxiomNames_Implementation.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofGenerator qualifying 4 | spec 5 | 6 | import ../ProofChecker/Spec 7 | 8 | def newAxiomName(cx:Context, an:AxiomName) = 9 | if an in? (contextAxioms(cx)) 10 | then newAxiomName(cx, an^"0") 11 | else an 12 | 13 | endspec 14 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueAxiomNames_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism UniqueAxiomNames -> UniqueAxiomNames_Implementation {} 4 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueVars.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofGenerator qualifying 4 | spec 5 | 6 | import ../ProofChecker/Spec 7 | 8 | op uniqueDefVar: Variable 9 | 10 | op v: Variable 11 | op v1: Variable 12 | op v2: Variable 13 | op u1: Variable 14 | op u2: Variable 15 | op u3: Variable 16 | 17 | axiom distinctVars is v1 ~= v2 && u1 ~= u2 && u2 ~= u3 &&u1 ~= u3 18 | 19 | endspec 20 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueVars_Implementation.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | ProofGenerator qualifying 4 | spec 5 | 6 | import ../ProofChecker/Spec 7 | 8 | def uniqueDefVar:Variable = user "udv" 9 | def v:Variable = user "v" 10 | def v1:Variable = user "v1" 11 | def v2:Variable = user "v2" 12 | def u1:Variable = user "u1" 13 | def u2:Variable = user "u2" 14 | def u3:Variable = user "u3" 15 | 16 | endspec 17 | -------------------------------------------------------------------------------- /Provers/ProofGenerator/UniqueVars_Refinement.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | morphism UniqueVars -> UniqueVars_Implementation {} 4 | -------------------------------------------------------------------------------- /Release/Generic/StartSpecwareShell.lisp: -------------------------------------------------------------------------------- 1 | (SWShell::specware-shell nil) 2 | -------------------------------------------------------------------------------- /Release/Linux/Patches/empty-patch-template.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl) -------------------------------------------------------------------------------- /Release/Linux/SBCL/Emacs_Specware: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | 3 | # The --noprofile inhibits loading of ~/.bash_profile and ~/.profile 4 | # files. See "man bash" for details. 5 | 6 | # Load specware emacs files, do command line options (e.g. load and 7 | # start Isabelle and then run-specware4 8 | 9 | emacs -l $SPECWARE4/Library/IO/Emacs/load-slime.el $* -f run-specware4& 10 | -------------------------------------------------------------------------------- /Release/Linux/SBCL/XEmacs_Specware: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | 3 | # The --noprofile inhibits loading of ~/.bash_profile and ~/.profile 4 | # files. See "man bash" for details. 5 | 6 | # Load specware emacs files, do command line options (e.g. load and 7 | # start Isabelle and then run-specware4 8 | 9 | xemacs -l $SPECWARE4/Library/IO/Emacs/load-slime.el $* -f run-specware4& 10 | -------------------------------------------------------------------------------- /Release/Linux/Update_SWPATH: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Ensure SWPATH is set 4 | 5 | Prior_SWPATH="$SWPATH" 6 | 7 | ############################################################################ 8 | 9 | if [ -z "$SWPATH" ]; then 10 | SWPATH="/" 11 | export SWPATH 12 | fi 13 | 14 | ############################################################################ 15 | 16 | export SWPATH 17 | 18 | echo "" 19 | echo "prior SWPATH: $Prior_SWPATH" 20 | echo "final SWPATH: $SWPATH" 21 | echo "" 22 | 23 | -------------------------------------------------------------------------------- /Release/LispUtilities/CompactMemory.lisp: -------------------------------------------------------------------------------- 1 | (in-package "CL-USER") 2 | 3 | ;; Assumes that MemoryManagement.lisp has been loaded. 4 | 5 | (compact-memory t -1 0) 6 | (set-gc-parameters-for-use nil) 7 | 8 | -------------------------------------------------------------------------------- /Release/LispUtilities/dist-utils.lisp: -------------------------------------------------------------------------------- 1 | (in-package :common-lisp-user) 2 | 3 | ;; for simplicity, use the same package that GatherComponents.lisp uses 4 | (defpackage :Distribution) 5 | 6 | (defvar Distribution::*verbose* t) 7 | 8 | #+Allegro (provide "dist-utils") 9 | 10 | -------------------------------------------------------------------------------- /Release/Mac/InstallOnMac: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Preparing to offer to install Specware 4.2 ..." 4 | 5 | echo "Mac version not available on this CD" 6 | 7 | exit 1 8 | -------------------------------------------------------------------------------- /Release/Mac/sbcl/Create Specware Package.pmproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Create Specware Package.pmproj -------------------------------------------------------------------------------- /Release/Mac/sbcl/Isabelle_Specware.app.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Isabelle_Specware.app.zip -------------------------------------------------------------------------------- /Release/Mac/sbcl/Isabelle_Specware.app/Contents/MacOS/Isabelle_Specware: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Isabelle_Specware.app/Contents/MacOS/Isabelle_Specware -------------------------------------------------------------------------------- /Release/Mac/sbcl/Isabelle_Specware.app/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | CFBundleName = "Isabelle_Specware"; 2 | CFBundleShortVersionString = "4.2.5"; 3 | CFBundleGetInfoString = "Isabelle_Specware version 4.2.5 Copyright 2008 Kestrel Institute"; 4 | NSHumanReadableCopyright = "Copyright 2008 Kestrel Institute."; -------------------------------------------------------------------------------- /Release/Mac/sbcl/Isabelle_Specware.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Isabelle_Specware.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Release/Mac/sbcl/Isabelle_Specware.app/Contents/Resources/appIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Isabelle_Specware.app/Contents/Resources/appIcon.icns -------------------------------------------------------------------------------- /Release/Mac/sbcl/Specware.app.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Specware.app.zip -------------------------------------------------------------------------------- /Release/Mac/sbcl/Specware.app/Contents/MacOS/Specware: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Specware.app/Contents/MacOS/Specware -------------------------------------------------------------------------------- /Release/Mac/sbcl/Specware.app/Contents/Resources/English.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | CFBundleName = "Specware"; 2 | CFBundleShortVersionString = "4.2.5"; 3 | CFBundleGetInfoString = "Specware version 4.2.5 Copyright 2008 Kestrel Institute"; 4 | NSHumanReadableCopyright = "Copyright 2008 Kestrel Institute."; -------------------------------------------------------------------------------- /Release/Mac/sbcl/Specware.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Specware.app/Contents/Resources/English.lproj/MainMenu.nib/keyedobjects.nib -------------------------------------------------------------------------------- /Release/Mac/sbcl/Specware.app/Contents/Resources/appIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Mac/sbcl/Specware.app/Contents/Resources/appIcon.icns -------------------------------------------------------------------------------- /Release/Windows/Allegro/Specware.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | call start-in-xemacs-slime run-specware4 3 | -------------------------------------------------------------------------------- /Release/Windows/Patches/ansi-loop.fasl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Windows/Patches/ansi-loop.fasl -------------------------------------------------------------------------------- /Release/Windows/Patches/empty-patch-template.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl) -------------------------------------------------------------------------------- /Release/Windows/Patches/patch-4-0-3.fasl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Windows/Patches/patch-4-0-3.fasl -------------------------------------------------------------------------------- /Release/Windows/Patches/patch-4-0-4.fasl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Windows/Patches/patch-4-0-4.fasl -------------------------------------------------------------------------------- /Release/Windows/Patches/patch-4-0-5.fasl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Windows/Patches/patch-4-0-5.fasl -------------------------------------------------------------------------------- /Release/Windows/Patches/patch-4-0-5.lisp: -------------------------------------------------------------------------------- 1 | (in-package :cl) -------------------------------------------------------------------------------- /Release/Windows/Patches/patch-4-0-6.fasl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Release/Windows/Patches/patch-4-0-6.fasl -------------------------------------------------------------------------------- /Release/Windows/StartXWin.cmd: -------------------------------------------------------------------------------- 1 | C:\cygwin\bin\run.exe -p "%CD%" /usr/bin/bash.exe -l -c "/usr/bin/startxwin.exe" 2 | -------------------------------------------------------------------------------- /Release/Windows/Update_SWPATH.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set "Prior_SWPATH=%SW_PATH%" 4 | 5 | rem ============================== SWPATH ==================================== 6 | rem You (the end user) may wish to modify SWPATH for your particular situation. 7 | 8 | 9 | rem ========================================================================== 10 | 11 | echo. 12 | echo prior SWPATH: %Prior_SWPATH% 13 | echo final SWPATH: %SWPATH% 14 | echo. 15 | -------------------------------------------------------------------------------- /Release/Windows/sbcl/Emacs_Specware: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | (shopt -s igncr) 2>/dev/null && shopt -s igncr; # Ignore cr's 3 | 4 | # The --noprofile inhibits loading of ~/.bash_profile and ~/.profile 5 | # files. See "man bash" for details. 6 | 7 | # Load specware emacs files, do command line options (e.g. load and 8 | # start Isabelle and then run-specware4 9 | 10 | emacs -l "$SPECWARE4"/Library/IO/Emacs/load-slime.el $* -f run-specware4& 11 | -------------------------------------------------------------------------------- /Release/Windows/sbcl/Specware.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | call start-in-xemacs-slime run-specware4 3 | -------------------------------------------------------------------------------- /Release/Windows/sbcl/XEmacs_Specware: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | (shopt -s igncr) 2>/dev/null && shopt -s igncr; # Ignore cr's 3 | 4 | # The --noprofile inhibits loading of ~/.bash_profile and ~/.profile 5 | # files. See "man bash" for details. 6 | 7 | # Load specware emacs files, do command line options (e.g. load and 8 | # start Isabelle and then run-specware4 9 | 10 | xemacs -l "$SPECWARE4"/Library/IO/Emacs/load-slime.el $* -f run-specware4& 11 | -------------------------------------------------------------------------------- /Scripts/unix/Specware_Version: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | SW_MAJOR=4 4 | SW_MINOR=2 5 | SW_PATCH=4 6 | 7 | ehco "==============" 8 | echo "SW_MAJOR = $SW_MAJOR" 9 | echo "SW_MINOR = $SW_MINOR" 10 | echo "SW_PATCH = $SW_PATCH" 11 | ehco "==============" 12 | 13 | -------------------------------------------------------------------------------- /Scripts/unix/Verify_Lisp: -------------------------------------------------------------------------------- 1 | #!/bin/bash --noprofile 2 | 3 | PATH=/bin:/usr/bin:/etc:/sbin:/usr/sbin:/usr/local/bin:${PATH} 4 | 5 | LISP_MODE=$1 6 | 7 | if [ -f $SPECWARE4/Scripts/unix/Verify_${LISP_MODE} ]; then 8 | # bash convention for . means the file is processed inline (as if copied here) 9 | echo $SPECWARE4/Scripts/unix/Verify_${LISP_MODE} $2 10 | . $SPECWARE4/Scripts/unix/Verify_${LISP_MODE} $2 11 | else 12 | echo " Verify_Lisp: Unrecognized lisp mode. LISP_MODE = [$LISP_MODE]" 13 | exit 1 14 | fi 15 | 16 | -------------------------------------------------------------------------------- /Specware4GenLisp.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | generate lisp /Applications/Specware/Specware4 in "Applications/Specware/lisp/Specware4.lisp" 4 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0001/Status: -------------------------------------------------------------------------------- 1 | (1 2 | :name "Nonexhaustive match failure in bindPattern" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "08/20/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | :archived-as 13 12 | ) 13 | 14 | --description-- 15 | 16 | --solution-- 17 | 18 | --commentary-- 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0002/Status: -------------------------------------------------------------------------------- 1 | (2 2 | :name "Loading lisp for id succ gives message: Attempt to take the car of 2003/8/15 which is not listp" 3 | :reporter "LM" 4 | :reported "08/15/03" 5 | :owner "SW" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | :archived-as 14 12 | ) 13 | 14 | --description-- 15 | 16 | --solution-- 17 | 18 | --commentary-- 19 | 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0003/ABC.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | type a 3 | end 4 | 5 | B = spec 6 | type b 7 | end 8 | 9 | C = spec 10 | type c 11 | end 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0003/Tests.lisp: -------------------------------------------------------------------------------- 1 | (test-directories ".") 2 | 3 | (test 4 | 5 | ("Bug 0003 : Some inconsistencies with using :sw command and with the # notation" 6 | :sw "ABC" 7 | :output '(";;; Elaborating spec at $TESTDIR/ABC#A" 8 | ";;; Elaborating spec at $TESTDIR/ABC#B" 9 | ";;; Elaborating spec at $TESTDIR/ABC#C" 10 | "")) 11 | 12 | ) 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0004/Status: -------------------------------------------------------------------------------- 1 | 2 | (4 3 | :name "Universally change references to URI (and derivative names) to UnitId in documentation" 4 | :reporter "LE" 5 | :reported "11/01/02" 6 | :owner "LE" 7 | :status :medium 8 | :severity :low 9 | :impact :low 10 | :closed "??" 11 | :fixed-in "??" 12 | :archived-as 16 13 | ) 14 | 15 | 16 | --description-- 17 | 18 | 19 | --solution-- -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0004/Template: -------------------------------------------------------------------------------- 1 | (NN 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | :solution 12 | :files 13 | :dscr 14 | ) 15 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0006/Diagram.sw: -------------------------------------------------------------------------------- 1 | 2 | R = spec type X endspec 3 | S = spec type Y endspec 4 | T = spec type Z endspec 5 | 6 | D = diagram { 7 | a : p -> q +-> morphism R -> S {X +-> Y}, 8 | b : p -> r +-> morphism R -> T {X +-> Z} 9 | } 10 | 11 | C1 = colimit diagram { 12 | a : p -> q +-> morphism R -> S {X +-> Y}, 13 | b : p -> r +-> morphism R -> T {X +-> Z} 14 | } 15 | 16 | C2 = colimit D 17 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0007/ManySpecs.sw: -------------------------------------------------------------------------------- 1 | 2 | A = spec type A endspec 3 | 4 | D = spec 5 | import C 6 | type D 7 | endspec 8 | 9 | C = spec 10 | import B 11 | type C 12 | endspec 13 | 14 | B = spec 15 | import A 16 | type B 17 | endspec 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0009/Status: -------------------------------------------------------------------------------- 1 | (9 2 | :name "Change reference to URI to UnitId in the source" 3 | :reporter "LE" 4 | :reported "11/01/02" 5 | :owner "LE" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | :archived-as 21 12 | ) 13 | 14 | --description-- 15 | 16 | --solution-- 17 | 18 | --commentary-- 19 | 20 | Must changes should have been done. 21 | LE should doublecheck. 22 | 23 | Posted by LM 7/5, 1:35 am 24 | 25 | 26 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0010/Status: -------------------------------------------------------------------------------- 1 | (10 2 | :name "Resolve ambiguities in parsing of where" 3 | :reporter "LE" 4 | :reported "11/01/02" 5 | :owner "LE" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | :archived-as 22 12 | ) 13 | 14 | --description-- 15 | 16 | --solution-- 17 | 18 | --commentary-- 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0011/abc.sw: -------------------------------------------------------------------------------- 1 | spec 2 | import xyz 3 | endspec -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0011/xyz.sw: -------------------------------------------------------------------------------- 1 | spec 2 | type S 3 | endspec -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0014/Status: -------------------------------------------------------------------------------- 1 | (14 2 | :name "SpecMorphism is not monadic" 3 | :reporter "LE" 4 | :reported "11/18/02" 5 | :owner "JM" 6 | :status :closed 7 | :severity :medium 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | :archived-as 26 12 | ) 13 | 14 | --description-- 15 | 16 | SpecMorphism is not monadic .. hence it jumps into the lisp debugger 17 | when the user enters an invalid morphism. Need to change fail to raise. 18 | 19 | 20 | --solution-- 21 | 22 | --commentary-- 23 | 24 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0017/AAcol.sw: -------------------------------------------------------------------------------- 1 | A = spec def fubaz = 12345 endspec 2 | 3 | D = diagram { X +-> A, Y +-> A } % two nodes, X and Y, each labelled with A 4 | 5 | C = colimit D % C should have two copies of A, hence two copies of fubaz 6 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0018/BBcol.sw: -------------------------------------------------------------------------------- 1 | A = spec def fubaz = 12345 endspec 2 | 3 | K = generate lisp colimit diagram { X +-> A } 4 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0021/AmbiguousOp.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | type a 3 | type b 4 | op c: a -> b 5 | end-spec 6 | 7 | B = spec 8 | type e 9 | end-spec 10 | 11 | C = spec 12 | type a 13 | type b 14 | op c: a -> b 15 | end-spec 16 | 17 | D = colimit diagram { 18 | m : B -> A +-> morphism B -> A {e +-> a}, 19 | n : B -> C +-> morphism B -> C {e +-> b} 20 | } 21 | 22 | E = spec 23 | import D 24 | op f: a -> b 25 | end-spec 26 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0024/Tests.lisp: -------------------------------------------------------------------------------- 1 | (test-directories ".") 2 | 3 | (test 4 | 5 | ("Bug 0024 : ':swl'-ing a processed spec causes a stack overflow error " 6 | :sw "players" 7 | :output 8 | '("ERROR: in specification: Name \"twoPlayers\" defined twice in file." 9 | "found in $TESTDIR/players.sw" 10 | "43.13-44.*")) 11 | 12 | ) 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0025/S.sw: -------------------------------------------------------------------------------- 1 | 2 | spec 3 | 4 | op foo : String * String -> Bool 5 | 6 | def foo (x, y) = 7 | (implode (explode x)) ^ (implode (explode y)) 8 | = 9 | (implode ((explode x) ++ (explode y))) 10 | 11 | endspec 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0026/Status: -------------------------------------------------------------------------------- 1 | (26 2 | :name "Implement Maps without SplayTrees or implement non-functional SplayTrees with more use of Refs. (so Ants can run)" 3 | :owner "SW" 4 | :reporter "MB" 5 | :reported "03/12/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0027/Status: -------------------------------------------------------------------------------- 1 | (27 2 | :name "Specware does not build on Windows" 3 | :owner "SW" 4 | :reporter "MB/DC/WP" 5 | :reported "03/24/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0028/Status: -------------------------------------------------------------------------------- 1 | (28 2 | :name "A few sort names such as Filename are mysteriously problematic." 3 | :owner "SW" 4 | :reporter "JM" 5 | :reported "04/30/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0029/A.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f : Nat -> Nat 3 | axiom ax is f(0) = 0 4 | end 5 | 6 | spec 7 | import A 8 | end 9 | 10 | B = spec 11 | import A 12 | end 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0030/Status: -------------------------------------------------------------------------------- 1 | (30 2 | :name "system crashes with seg. fault when compiling the following specs" 3 | :owner "??" 4 | :reporter "MA" 5 | :reported "05/02/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0030/WasCausingSegFault.sw: -------------------------------------------------------------------------------- 1 | BinaryRel = spec 2 | type X 3 | op brel infixl 100 : X * X -> Bool 4 | endspec 5 | 6 | 7 | BinaryOp = spec 8 | type X 9 | op bop infixl 100 : X * X -> X 10 | endspec 11 | 12 | 13 | Test1 = generate lisp BinaryRel 14 | 15 | Test2 = generate lisp BinaryOp 16 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0031/Status: -------------------------------------------------------------------------------- 1 | (31 2 | :name "Error messages can be so huge (>1000 lines) that the original message gets lost, because it exceeds the terminal's line history." 3 | :owner "??" 4 | :reporter "MA" 5 | :reported "05/02/03" 6 | :status :closed 7 | :severity :low 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0032/Status: -------------------------------------------------------------------------------- 1 | (32 2 | :name "Running :sw on a file three times results in an infinite loop." 3 | :owner "SW" 4 | :reporter "DC" 5 | :reported "05/20/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0033/Status: -------------------------------------------------------------------------------- 1 | (33 2 | :name "Code generation problem?" 3 | :owner "??" 4 | :reporter :LE" 5 | :reported "05/29/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0034/Status: -------------------------------------------------------------------------------- 1 | (34 2 | :name "when an equality (in an axiom?) is written with the rhs missing, specware breaks into the debugger instead of reporting an error message." 3 | :owner "JM" 4 | :reporter "DC" 5 | :reported "05/30/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0035/Status: -------------------------------------------------------------------------------- 1 | (35 2 | :name "One-field record descriptors fail as args." 3 | :owner "SW" 4 | :reporter "JM" 5 | :reported "06/20/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0036/Status: -------------------------------------------------------------------------------- 1 | (36 2 | :name "The wrong lisp code is generated for accessing fields of subsets of two-arg products." 3 | :owner "SW" 4 | :reporter "JM" 5 | :reported "06/20/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0037/Status: -------------------------------------------------------------------------------- 1 | (37 2 | :name "Discrepancy between language manual and parser for reserved non-word-symbols (e.g. / and ->)" 3 | :owner "WP" 4 | :reporter "LM" 5 | :reported "06/17/03" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | resolved except for SpecBeans parser 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0038/Status: -------------------------------------------------------------------------------- 1 | (38 2 | :name "Problem with 'project' in parser or typechecker" 3 | :owner "SW" 4 | :reporter "AG/LE" 5 | :reported "07/18/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | MA: same problem with even simpler input file (attached) 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0039/Status: -------------------------------------------------------------------------------- 1 | (39 2 | :name "Circular definition error after failing to evaluate a unit." 3 | :owner "SW" 4 | :reporter "LE" 5 | :reported "07.23/03" 6 | :status :closed 7 | :severity :low 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0040/Status: -------------------------------------------------------------------------------- 1 | (40 2 | :name "natToString(stringToNat(\"hellooo!\")) gives no error" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "07/29/03" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0041/Status: -------------------------------------------------------------------------------- 1 | (41 2 | :name "Incorrect handwritten lisp for = on quotient type" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "07/30/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0042/Status: -------------------------------------------------------------------------------- 1 | (42 2 | :name "choose Q f 0 gives no type error but a run-time Segmentation violation" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "07/30/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0043/Change.sw: -------------------------------------------------------------------------------- 1 | Flipflop = 2 | spec 3 | type Flip 4 | op flop : Flip -> Flip 5 | axiom change is 6 | fa(x) ~(flop x = x) 7 | endspec 8 | 9 | GiveNameToTilde = % since ~ can't appear directly in morphisms 10 | spec 11 | op negation : Bool -> Bool 12 | def negation = (~) 13 | endspec 14 | 15 | FlipFlopImplementation = 16 | morphism Flipflop -> GiveNameToTilde {Flip +-> Bool, flop +-> negation} 17 | 18 | ShouldBeProvable = 19 | prove change in obligations FlipFlopImplementation 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0043/Status: -------------------------------------------------------------------------------- 1 | (43 2 | :name "Snark doesn't like Booleans" 3 | :owner "DC" 4 | :reporter "LM" 5 | :reported "07/30/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0044/Status: -------------------------------------------------------------------------------- 1 | (44 2 | :name "Imported axiom cannot be used in proof" 3 | :owner "DC" 4 | :reporter "LM" 5 | :reported "08/06/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0045/Flop.sw: -------------------------------------------------------------------------------- 1 | Flip = 2 | spec 3 | type Flip 4 | op flip : Flip -> Flip 5 | endspec 6 | 7 | Flop = 8 | spec 9 | type A 10 | type B 11 | op A.flop : A -> A 12 | op B.flop : B -> B 13 | endspec 14 | 15 | FlipFlopImplementation = 16 | morphism Flip -> Flop {Flip +-> A, flip +-> flop} 17 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0045/Show.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op b : Nat -> String 3 | def b = show 4 | endspec 5 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0045/Status: -------------------------------------------------------------------------------- 1 | (45 2 | :name "Unambiguous op erroneously declared ambiguous" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "06/08/03" 6 | :status :open 7 | :severity :low 8 | :impact :medium 9 | :closed "??" 10 | :fixed-in "??" 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0046/Status: -------------------------------------------------------------------------------- 1 | (46 2 | :name "(+) handled incorrectly" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "08/10/03" 6 | :status :closed 7 | :severity :low 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0047/Status: -------------------------------------------------------------------------------- 1 | (47 2 | :name "Case insensitivity of Lisp considered harmful" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "08/11/03" 6 | :status :open 7 | :severity :medium 8 | :impact :medium 9 | :closed "??" 10 | :fixed-in "??" 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0047/UpLo.sw: -------------------------------------------------------------------------------- 1 | aA = aA qualifying spec 2 | def q = 123 3 | endspec 4 | 5 | Aa = Aa qualifying spec 6 | def q = 456 7 | endspec 8 | 9 | C = spec 10 | import aA 11 | import Aa 12 | def low_high = aA.q 13 | def high_low = Aa.q 14 | endspec 15 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0048/Status: -------------------------------------------------------------------------------- 1 | (48 2 | :name "(\"0\" lt \"1\") = true evaluates to NIL" 3 | :owner "LM" 4 | :reporter "LM" 5 | :reported "08/12/03" 6 | :status :closed 7 | :severity :high 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0049/Status: -------------------------------------------------------------------------------- 1 | (49 2 | :name "The code generator dies on & (id (true , true)) with message Nonexhaustive match failure in mkLTermOp" 3 | :owner "LM" 4 | :reporter "LM" 5 | :reported "08/12/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0050/Status: -------------------------------------------------------------------------------- 1 | (50 2 | :name "Code generator chokes on unary tabulate" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "08/13/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0051/Status: -------------------------------------------------------------------------------- 1 | (51 2 | :name "Lisp loading crashes on unary sub" 3 | :owner "LM" 4 | :reporter "LM" 5 | :reported "08/13/03" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0052/Status: -------------------------------------------------------------------------------- 1 | (52 2 | :name "sublist is missing from Appendix B of the language manual" 3 | :owner "TWK" 4 | :reporter "LM" 5 | :reported "09/17/03" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0053/Status: -------------------------------------------------------------------------------- 1 | (53 2 | :name "Strange result is shown for result of spec-substitution" 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "08/20/03" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0055/ABC.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | type A 3 | end 4 | 5 | B = spec 6 | type B 7 | end 8 | 9 | C = spec 10 | type C 11 | end 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0056/Blob.sw: -------------------------------------------------------------------------------- 1 | Src = spec 2 | type Flip 3 | op flop : Flip -> Flip 4 | axiom change is 5 | fa(x) ~(flop x = x) 6 | endspec 7 | 8 | Trg = spec endspec 9 | 10 | Src2Trg = morphism Src -> Trg {Flip +-> Bool, flop +-> ~} 11 | 12 | S2Tob = obligations Src2Trg 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0057/Status: -------------------------------------------------------------------------------- 1 | (57 2 | :name "In elaborating unit in multiple-unit file, all other units get elaborated (possibly again) as well, even if not relevant" 3 | :owner "SW" 4 | :reporter "DC" 5 | :reported "09/04/03" 6 | :status :closed 7 | :severity :low 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0059/Status: -------------------------------------------------------------------------------- 1 | (59 2 | :name "Use of non-word-marks ` or \ in an op-name results in syntactically incorrect Lisp code, causing :swll to crash" 3 | :owner "JM" 4 | :reporter 5 | :reported 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | ` and \ are special Lisp characters and must be escaped 18 | 19 | --commentary-- 20 | 21 | 22 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_42.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0060/Status: -------------------------------------------------------------------------------- 1 | (60 2 | :name "embed-pattern is missing from Quick Reference" 3 | :owner "LM" 4 | :reporter 5 | :reported 6 | :status 7 | :severity 8 | :impact 9 | :closed "09/06/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_43.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0061/Status: -------------------------------------------------------------------------------- 1 | (61 2 | :name "In the language manual, the rule for embed-pattern should have an optional closed-pattern" 3 | :owner "LM" 4 | :reporter 5 | :reported 6 | :status 7 | :severity 8 | :impact 9 | :closed "09/06/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_45.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0062/Status: -------------------------------------------------------------------------------- 1 | (62 2 | :name "Wrong type for substring in Language Manual, Library Appendix: result sort is given as Char" 3 | :owner "LM" 4 | :reporter 5 | :reported 6 | :status 7 | :severity 8 | :impact 9 | :closed "08/26/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_46.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0063/Status: -------------------------------------------------------------------------------- 1 | (63 2 | :name "Incorrect op-declaration op signToNat (s : Sign) : Nat in Language Manual, Section 'Sort-correctness'" 3 | :owner "LM" 4 | :reporter 5 | :reported 6 | :status 7 | :severity 8 | :impact 9 | :closed "09/07/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_47.html 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0064/Status: -------------------------------------------------------------------------------- 1 | (64 2 | :name "Sort unification fails when it shouldn't" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "09/08/03" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0065/Status: -------------------------------------------------------------------------------- 1 | (65 2 | :name "select is treated by the parser as a reserved word" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed "09/07/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_48.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0066/Status: -------------------------------------------------------------------------------- 1 | (66 2 | :name "Specware-Snark translation snafu" 3 | :reporter "LM" 4 | :reported "09/13/03" 5 | :owner "DC" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0067/CheckSignature.sw: -------------------------------------------------------------------------------- 1 | S1 = spec 2 | type A 3 | op f : A 4 | endspec 5 | 6 | 7 | S2 = spec 8 | type B 9 | type C 10 | op g : C % B would be ok 11 | endspec 12 | 13 | 14 | M = morphism S1 -> S2 {A +-> B, f +-> g} 15 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0067/Status: -------------------------------------------------------------------------------- 1 | (67 2 | :name "Signature constraints in spec morphism are not checked" 3 | :owner "JM" 4 | :reporter "AC/LM" 5 | :reported "09/24/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0068/EvenToOdd.sw: -------------------------------------------------------------------------------- 1 | S1 = spec 2 | type Even = {n : Nat | ex(m) n = 2 * m} 3 | endspec 4 | 5 | S2 = spec 6 | type Odd = {n : Nat | ex(m) n = 2 * m + 1} 7 | endspec 8 | 9 | M = morphism S1 -> S2 {Even +-> Odd} 10 | 11 | O = obligations M 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0068/Status: -------------------------------------------------------------------------------- 1 | (68 2 | :name "Even numbers can be refined to odd numbers" 3 | :reporter "AC/LM" 4 | :reported "09/24/03" 5 | :owner "JM" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0069/MorphismFromBase.sw: -------------------------------------------------------------------------------- 1 | S = spec endspec 2 | 3 | T = spec endspec 4 | 5 | %% Use fully qualified Integer.Int, just to eliminate any confusion 6 | M = morphism S -> T {Integer.Int +-> XX} 7 | 8 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0069/MorphismToBase.sw: -------------------------------------------------------------------------------- 1 | (* its ok to map into the base *) 2 | 3 | S = spec type SS endspec 4 | 5 | T = spec endspec 6 | 7 | M = morphism S -> T {SS +-> Char.Char} 8 | 9 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0069/Status: -------------------------------------------------------------------------------- 1 | (69 2 | :name "Translating base sorts is allowed" 3 | :reporter "AC/LM" 4 | :reported "09/24/03" 5 | :owner "JM" 6 | :status :closed 7 | :severity :high 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0069/TranslateFromBase.sw: -------------------------------------------------------------------------------- 1 | S = spec endspec 2 | 3 | M = translate S by {Int +-> MyInt} 4 | 5 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0069/TranslateIntoBase.sw: -------------------------------------------------------------------------------- 1 | S = spec type MyChar = Char endspec 2 | 3 | %% Note: {MyChar +-> Char} would work, because the new Char 4 | %% would be unqualified Char, distinct from Char.Char 5 | %% That is confusing, but not the concern of this test. 6 | 7 | M = translate S by {MyChar +-> Char.Char} 8 | 9 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0070/Status: -------------------------------------------------------------------------------- 1 | (70 2 | :name "Quotient sorts are not checked" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "09/25/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0071/Status: -------------------------------------------------------------------------------- 1 | (71 2 | :name "Strange proof obligations generated by passing restrict to a higher-order function" 3 | :owner "JM" 4 | :reporter "AC" 5 | :reported "09/29/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0072/Status: -------------------------------------------------------------------------------- 1 | (72 2 | :name "Strange proof obligations generated by passing choose to a higher-order function" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/02/03" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0073/Status: -------------------------------------------------------------------------------- 1 | (73 2 | :name "Bogus complaints about duplicate definitions." 3 | :reporter "JM" 4 | :reported "10/19/03" 5 | :owner "JM" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0074/EquivalentTypes.sw: -------------------------------------------------------------------------------- 1 | Foo = spec type Foo x = List (x * x) endspec 2 | 3 | AA = spec type A endspec 4 | 5 | BB = spec import Foo type B = Foo Nat endspec 6 | 7 | CC = spec type C = List (Nat * Nat) endspec 8 | 9 | MM = morphism AA -> BB {A +-> B} 10 | 11 | NN = morphism AA -> CC {A +-> C} 12 | 13 | DD = diagram {M : A -> B +-> MM, 14 | N : A -> C +-> NN} 15 | 16 | XX = colimit DD 17 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0074/Status: -------------------------------------------------------------------------------- 1 | (74 2 | :name "Similarity of definitions often missed." 3 | :reporter "JM" 4 | :reported "10/20/03" 5 | :owner "JM" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0075/Status: -------------------------------------------------------------------------------- 1 | (75 2 | :name "According to the grammar in the language manual, 2*n+1 is not an expression." 3 | :owner "LM" 4 | :reporter "LM" 5 | :reported "10/11/03" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0076/Status: -------------------------------------------------------------------------------- 1 | (76 2 | :name "Substitution loses a def along the way" 3 | :reporter "LM" 4 | :reported "11/04/03" 5 | :owner "JM/LE" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0077/Status: -------------------------------------------------------------------------------- 1 | (77 2 | :name "removeCurrying doesn't produce correct parameter lists" 3 | :owner "SW" 4 | :reporter "MA" 5 | :reported "11/04/03" 6 | :status :closed 7 | :severity :low 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0078/Status: -------------------------------------------------------------------------------- 1 | (78 2 | :name "Terminologically incorrect progress message when processing morphisms" 3 | :reporter "AC" 4 | :reported "11/18/03" 5 | :owner "??" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0079/Status: -------------------------------------------------------------------------------- 1 | (79 2 | :name "Strange proof obligation with overloaded variable is generated" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "01/27/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0080/Status: -------------------------------------------------------------------------------- 1 | (80 2 | :name "Specware crashes when processing empty tuple/record {}" 3 | :reporter "AC" 4 | :reported "02/13/04" 5 | :owner "??" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0081/Status: -------------------------------------------------------------------------------- 1 | (81 2 | :name "Type-correct quotient unjustly rejected" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "02/16/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0082/Status: -------------------------------------------------------------------------------- 1 | (82 2 | :name "Type checker rejects well-typed spec" 3 | :reporter "AC" 4 | :reported "03/03/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0083/Ambop.sw: -------------------------------------------------------------------------------- 1 | A = spec op fff : Nat -> Nat def fff = fn iii -> iii+1 endspec 2 | B = spec op fff : Nat -> Nat def fff = fn jjj -> jjj+2 endspec 3 | C = spec import A import B def ggg = fff endspec 4 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0083/Status: -------------------------------------------------------------------------------- 1 | (83 2 | :name "Ambiguous op not detected" 3 | :reporter "LM" 4 | :reported "03/17/04" 5 | :owner "JM" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0084/Status: -------------------------------------------------------------------------------- 1 | (84 2 | :name "The full error msg for ambiguous sorts/ops could be enormously long, so printing it to the screen is a bad idea." 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "03/18/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0085/Status: -------------------------------------------------------------------------------- 1 | (85 2 | :name "Proof obligations for quotient pattern are not generated" 3 | :reporter "AC" 4 | :reported "05/07/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0086/Status: -------------------------------------------------------------------------------- 1 | (86 2 | :name "Treatment of certain subtypes and polymorphic types is unsound" 3 | :reporter "AC" 4 | :reported "05/07/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0087/Status: -------------------------------------------------------------------------------- 1 | (87 2 | :name "Op def's may generate ill-typed proof obligations" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "05/07/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0088/Status: -------------------------------------------------------------------------------- 1 | (88 2 | :name "No obligation generated from morphism whose source spec has def's" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "06/03/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0089/Status: -------------------------------------------------------------------------------- 1 | (89 2 | :name "Command dirr in Specware shell doesn't have intended behavior" 3 | :reporter "AC" 4 | :reported "06/04/04" 5 | :owner "SW/JM" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0090/Status: -------------------------------------------------------------------------------- 1 | (90 2 | :name "Insufficient context to type-check case branches" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0090/caseContext.sw: -------------------------------------------------------------------------------- 1 | S = spec 2 | 3 | op f : fa(a) List a -> Nat 4 | def f l = case l of 5 | | Nil -> 0 6 | | _ -> 100 div length l 7 | 8 | endspec 9 | 10 | 11 | O = obligations S 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0091/Status: -------------------------------------------------------------------------------- 1 | (91 2 | :name "Redundant declarations when showing obligations" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "06/07/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0092/BogusImport.sw: -------------------------------------------------------------------------------- 1 | S = spec endspec 2 | 3 | (* O should not show WFO as an import *) 4 | 5 | O = obligations S 6 | 7 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0092/Status: -------------------------------------------------------------------------------- 1 | (92 2 | :name "Useless import of WFO" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0093/IncompatColimit.sw: -------------------------------------------------------------------------------- 1 | I = spec 2 | op i : Nat 3 | endspec 4 | 5 | I1 = spec 6 | def i = 1 7 | endspec 8 | 9 | I2 = spec 10 | def i = 2 11 | endspec 12 | 13 | D = diagram { 14 | N +-> I, 15 | N1 +-> I1, 16 | N2 +-> I2, 17 | NN1: N -> N1 +-> morphism I -> I1 {}, 18 | NN2: N -> N2 +-> morphism I -> I2 {} 19 | } 20 | 21 | IncompatColimit = colimit D -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0093/Status: -------------------------------------------------------------------------------- 1 | (93 2 | :name "No check on clashing defs in colimit" 3 | :reporter "TWK" 4 | :reported "06/22/04" 5 | :owner "JM" 6 | :status :closed 7 | :severity :high 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0094/Status: -------------------------------------------------------------------------------- 1 | (94 2 | :name "Subtype obligation not generated" 3 | :owner "??" 4 | :reporter "AC" 5 | :reported "06/29/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0095/Status: -------------------------------------------------------------------------------- 1 | (95 2 | :name "swpath appears empty but it is not" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "06/29/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0096/Status: -------------------------------------------------------------------------------- 1 | (96 2 | :name "Case obligation not generated" 3 | :owner "??" 4 | :reporter "AC" 5 | :reported "06/28/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0097/Status: -------------------------------------------------------------------------------- 1 | (97 2 | :name "Subtype obligation not generated" 3 | :reporter "AC" 4 | :reported "06/29/04" 5 | :owner "??" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0098/Status: -------------------------------------------------------------------------------- 1 | (98 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0099/MinusOb.sw: -------------------------------------------------------------------------------- 1 | ONat = obligations /Library/Base/Integer 2 | 3 | MinusProof = prove minus_def2_Obligation_subtype in ONat 4 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0099/Status: -------------------------------------------------------------------------------- 1 | (99 2 | :name "Extra 'let' in generated proof obligation" 3 | :reporter "AC" 4 | :reported "07/01/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0100/Status: -------------------------------------------------------------------------------- 1 | (100 2 | :name "Missing import from obligations spec from the base" 3 | :reporter "AC" 4 | :reported "07/01/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0101/ObligationsOfInteger.sw: -------------------------------------------------------------------------------- 1 | 2 | obligations /Library/Base/Integer 3 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0101/Status: -------------------------------------------------------------------------------- 1 | (101 2 | :name "Redundant obligations for if-then-else" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "07/01/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0102/ObligationsOfInteger.sw: -------------------------------------------------------------------------------- 1 | 2 | obligations /Library/Base/Integer 3 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0102/Status: -------------------------------------------------------------------------------- 1 | (102 2 | :name "Extra variable in generated proof obligation" 3 | :reporter "AC" 4 | :reported "07/01/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0103/NeedWFO.sw: -------------------------------------------------------------------------------- 1 | S = spec 2 | 3 | op f : fa(a) {(l,i) : List a * Nat | i < length l} -> a 4 | 5 | def f(hd::tl,i) = 6 | if i = 0 then 7 | hd 8 | else 9 | f(Cons(hd,tl),i) % WRONG 10 | 11 | endspec 12 | 13 | 14 | O = print obligations S 15 | 16 | P = prove f_Obligation_exhaustive in O 17 | %P0 = prove f_Obligation0 in O 18 | %P1 = prove f_Obligation1 in O 19 | 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0103/Status: -------------------------------------------------------------------------------- 1 | (103 2 | :name "WFO obligation not generated" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "07/01/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0104/NonConstructive.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | %% notFalse should evaluate to true (or perhaps fail to evaluate) 4 | %% but should not evaluate to false! 5 | 6 | op notFalse : Bool 7 | def notFalse = (id:Nat->Nat) = id o id 8 | 9 | endspec 10 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0104/Status: -------------------------------------------------------------------------------- 1 | (104 2 | :name "Erroneous code for non-constructive expression" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0105/QuantifiedAxiom.sw: -------------------------------------------------------------------------------- 1 | 2 | %% Good... 3 | A = spec 4 | op f infixl 22 : [a] List a * a -> Int 5 | def i = 123 6 | axiom A is ([i] f 3 = 0) 7 | endspec 8 | 9 | %% Error... 10 | B = spec 11 | op f infixl 22 : [a] List a * a -> Int 12 | def i = 123 13 | axiom A is [i] f 3 = 0 14 | endspec 15 | 16 | %% Peculiar... 17 | C = spec 18 | op f infixl 22 : [a] a -> Int 19 | def i = 123 20 | axiom A is [i] f 3 = 0 21 | endspec 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0105/Status: -------------------------------------------------------------------------------- 1 | (105 2 | :name "The new-style type quantifications in claim definitions are ambiguous." 3 | :owner "JM" 4 | :reporter "LM" 5 | :reported "09/04/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0106/AmbiguousRef.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op b : Nat -> String 3 | def b = show 4 | endspec 5 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0106/Status: -------------------------------------------------------------------------------- 1 | (106 2 | :name "Names not disambiguated when printing" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/08/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0107/BogusNil.sw: -------------------------------------------------------------------------------- 1 | spec 2 | type NotList a = | Nil | Cons (a * NotList a) 3 | def bogus_nil : NotList Nat = Nil %% Don't print as [] 4 | def bogus_cons : NotList Nat = Cons (4, Cons (5, Cons (6, bogus_nil))) %% Don't print as [5,6] 5 | def true_nil : List Nat = [] 6 | def true_cons : List Nat = [1,2,3] 7 | endspec -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0107/Status: -------------------------------------------------------------------------------- 1 | (107 2 | :name "Bogus Nil printed as []" 3 | :reporter "JM" 4 | :reported "09/08/04" 5 | :owner "JM" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0108/ABC.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | type a 3 | end 4 | 5 | B = spec 6 | type b 7 | end 8 | 9 | C = spec 10 | type c 11 | end 12 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0108/Status: -------------------------------------------------------------------------------- 1 | (108 2 | :name "Printing of diagrams is atrocious" 3 | :reporter "JM" 4 | :reported "09/09/04" 5 | :owner "JM 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0109/DeclsRequired.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | type YesNo = | Yes | No 4 | type Affirm = | Yes | Sure | Ok 5 | 6 | op f : Int 7 | op g : Nat 8 | op x : List Char 9 | op y : List String 10 | op z : Affirm 11 | 12 | def f = 3 13 | def g = 3 14 | def x = [] 15 | def y = [] 16 | def z = Yes 17 | 18 | endspec 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0109/Status: -------------------------------------------------------------------------------- 1 | (109 2 | :name "Declarations not printed" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/10/04" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0110/BogusNil.sw: -------------------------------------------------------------------------------- 1 | Winner = spec 2 | type Nats = List Nat 3 | type Bogus = | Nil | Other 4 | def f : Nats = [] 5 | def g : Nats = Nil 6 | def h : Nats = [33] 7 | def a : Bogus = Nil 8 | def b : Bogus = Other 9 | endspec 10 | 11 | Loser = spec 12 | type Nats = List Nat 13 | type Bogus = | Nil | Other 14 | def loser : Bogus = [] 15 | endspec 16 | 17 | Loser2 = spec 18 | type Nats = List Nat 19 | type Bogus = | Nil | Other 20 | def loser = [] 21 | endspec 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0110/Status: -------------------------------------------------------------------------------- 1 | (110 2 | :name "[] read as bogus Nil" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/12/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0111/Capture.sw: -------------------------------------------------------------------------------- 1 | 2 | S = spec 3 | 4 | op yy : Nat 5 | op zz : Nat -> Nat 6 | def ff (xx : Nat) = xx + yy 7 | axiom foo is fa (xx : Nat) xx = xx + yy 8 | 9 | def g n = 10 | let (xx : Nat) = n in 11 | xx + yy 12 | 13 | def h n = 14 | let 15 | def ww n = n 16 | in 17 | (ww n) + (zz n) 18 | 19 | endspec 20 | 21 | T = translate S by {yy +-> xx, zz +-> ww} 22 | W = translate T by {xx +-> aa, ww +-> bb} 23 | 24 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0111/Status: -------------------------------------------------------------------------------- 1 | (111 2 | :name "Capture of translated ops by var bindings" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/17/04" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0112/Status: -------------------------------------------------------------------------------- 1 | (112 2 | :name "Translate rules should be able to use unqualified ref to refer to unambiguous qualified op" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/17/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0113/Status: -------------------------------------------------------------------------------- 1 | (113 2 | :name "Translate should be monic" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/20/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0114/Colimit.sw: -------------------------------------------------------------------------------- 1 | 2 | R = spec 3 | 4 | type X 5 | op f : X 6 | 7 | endspec 8 | 9 | S = spec 10 | 11 | type Y 12 | op g : Y 13 | 14 | endspec 15 | 16 | T = spec 17 | 18 | type Z 19 | op h : Z 20 | 21 | endspec 22 | 23 | D = diagram 24 | { 25 | a : r -> s +-> morphism R -> S {X +-> Y, f +-> g}, 26 | b : r -> t +-> morphism R -> T {X +-> Z, f +-> h} 27 | } 28 | 29 | C = colimit D 30 | 31 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0114/Status: -------------------------------------------------------------------------------- 1 | (114 2 | :name "Equivalent op decls should be coalesced" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "09/22/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0115/Status: -------------------------------------------------------------------------------- 1 | (115 2 | :name "Specware intermittantly goes into an infinite loop after emacs sw-shell commands are invoked" 3 | :owner "SW" 4 | :reporter "DC" 5 | :reported "10/01/04" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0116/Status: -------------------------------------------------------------------------------- 1 | (116 2 | :name "Error in removeCurrying" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0117/Status: -------------------------------------------------------------------------------- 1 | (117 2 | :name "Prover and quotient types" 3 | :owner "DC" 4 | :reporter "DC" 5 | :reported "10/01/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0118/Status: -------------------------------------------------------------------------------- 1 | (118 2 | :name "Equivalence of Pi sorts not detected" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "10/02/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0119/Status: -------------------------------------------------------------------------------- 1 | (119 2 | :name "punits with no arguments writes to a wrong file" 3 | :owner "DC" 4 | :reporter "DC" 5 | :reported "10/04/04" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0120/Status: -------------------------------------------------------------------------------- 1 | (120 2 | :name "When invoking an specware emacs command when Specware is in the debugger, the sw-shell version of the command is used, but shouldn't." 3 | :owner "SW" 4 | :reporter "DC" 5 | :reported "10/04/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0121/Status: -------------------------------------------------------------------------------- 1 | (121 2 | :name "Showing base library Compare yields error" 3 | :reporter "AC" 4 | :reported "10/05/04" 5 | :owner "JM" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0122/Status: -------------------------------------------------------------------------------- 1 | (122 2 | :name "Two constants might be equal" 3 | :owner "SW" 4 | :reporter "JM" 5 | :reported "10/06/04" 6 | :status :closed 7 | :severity :medium 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0122/TwoConstants.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | % without further information, we don't know if f = g 4 | % so the interpreter should not reduce it to false 5 | op f : Nat 6 | op g : Nat 7 | 8 | endspec -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0123/Status: -------------------------------------------------------------------------------- 1 | (123 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0124/Status: -------------------------------------------------------------------------------- 1 | (124 2 | :name "Choose prints incorrectly" 3 | :owner "JM" 4 | :reporter 5 | :reported 6 | :status :closed 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0125/PosNat.sw: -------------------------------------------------------------------------------- 1 | s = spec 2 | 3 | axiom negativePPP is 4 | fa(n:PosNat) ~(- n >= 0) 5 | 6 | conjecture c is false 7 | 8 | endspec 9 | 10 | p = prove c in s 11 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0125/Status: -------------------------------------------------------------------------------- 1 | (125 2 | :name "Prover unsoundness when using PosNat" 3 | :owner "DC" 4 | :reporter "AC" 5 | :reported "10/08/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0126/Alpha.sw: -------------------------------------------------------------------------------- 1 | DOM = spec op x : [a] a endspec 2 | COD = spec op y : [b] b endspec 3 | MOR = morphism DOM -> COD {x +-> y} 4 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0126/Status: -------------------------------------------------------------------------------- 1 | (126 2 | :name "Type comparison of polymorphic ops in translation fails to compare modulo alpha conversion" 3 | :reporter 4 | :reported 5 | :owner "JM" 6 | :status :closed 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0127/Status: -------------------------------------------------------------------------------- 1 | (127 2 | :name "Specware can't infer morphism mapping T +-> Q.T automatically" 3 | :owner "JM" 4 | :reporter 5 | :reported 6 | :status :closed 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0128/Status: -------------------------------------------------------------------------------- 1 | (128 2 | :name "Cannot translate unqualified <=" 3 | :owner "JM" 4 | :reporter "AC" 5 | :reported "10/10/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0128/orderOblig.sw: -------------------------------------------------------------------------------- 1 | S = spec 2 | 3 | op c : Int 4 | 5 | op d : Nat 6 | def d = c % not well-typed 7 | 8 | op e : Int 9 | def e = d 10 | 11 | conjecture E is e >= 0 12 | 13 | endspec 14 | 15 | 16 | O = obligations S 17 | 18 | 19 | P = prove d_Obligation_subtype in O 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0129/Status: -------------------------------------------------------------------------------- 1 | (129 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0130/Status: -------------------------------------------------------------------------------- 1 | (130 2 | :name "Processing obligations causes crash with error message about arrow type" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/11/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0131/Status: -------------------------------------------------------------------------------- 1 | (131 2 | :name "Attempting to prove simple Option obligation breaks into Lisp" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/11/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0132/Status: -------------------------------------------------------------------------------- 1 | (132 2 | :name "No proof obligation generated for 'the'" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/11/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0133/Status: -------------------------------------------------------------------------------- 1 | (133 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0134/Status: -------------------------------------------------------------------------------- 1 | (134 2 | :name "Unparseable proof obligation generated" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/12/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0135/Status: -------------------------------------------------------------------------------- 1 | (135 2 | :name "Extra useless variables make obligations very hard to understand" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/12/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0136/Status: -------------------------------------------------------------------------------- 1 | (136 2 | :name "Incorrect ordering of proof obligations causes unsoundness" 3 | :owner "??" 4 | :reporter "AC" 5 | :reported "10/12/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0137/Status: -------------------------------------------------------------------------------- 1 | (137 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0138/Status: -------------------------------------------------------------------------------- 1 | (138 2 | :name "Constructor called 'sub' causes type error unless preceded by 'embed'" 3 | :reporter "AC" 4 | :reported "10/25/04" 5 | :owner "SW" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0138/Tests.lisp: -------------------------------------------------------------------------------- 1 | (test-directories ".") 2 | 3 | (test 4 | 5 | ("Bug 0138 : Constructor called 'sub' causes type eror unless preceded by 'embed'" 6 | :sw "sub" 7 | :output '(";;; Elaborating spec at $TESTDIR/sub" 8 | "")) 9 | 10 | ) -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0138/sub.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | type T = | sub | sup 4 | 5 | op c : T 6 | def c = sub 7 | 8 | endspec 9 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0139/Status: -------------------------------------------------------------------------------- 1 | (139 2 | :name "Snark prover interface crashes into Lisp" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "10/26/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0140/STO.sw: -------------------------------------------------------------------------------- 1 | S = spec 2 | 3 | type FF a 4 | 5 | op c : [a] FF a 6 | 7 | def [a] c = c 8 | 9 | endspec 10 | 11 | 12 | T = spec 13 | 14 | type FF a 15 | 16 | op c : [a] FF a 17 | 18 | endspec 19 | 20 | 21 | O = obligations morphism S -> T {} 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0140/Status: -------------------------------------------------------------------------------- 1 | (140 2 | :name "Polymorphic mystery term" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "11/09/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0141/Status: -------------------------------------------------------------------------------- 1 | (141 2 | :name "obligations results in a crash." 3 | :owner "SW" 4 | :reporter "DC" 5 | :reported "11/09/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | Same file as for bug139 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0142/Ob.sw: -------------------------------------------------------------------------------- 1 | S = spec 2 | 3 | type RR = {a : {b : Int}} 4 | 5 | op z : RR 6 | 7 | axiom pp is 8 | z.a.b = 0 9 | 10 | endspec 11 | 12 | 13 | T = spec 14 | 15 | type RR = {a : {b : Int}} 16 | 17 | op z : RR 18 | 19 | def z = {a = {b = 0}} 20 | 21 | endspec 22 | 23 | 24 | BadObl1 = obligations morphism S -> T {} 25 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0142/Status: -------------------------------------------------------------------------------- 1 | (142 2 | :name "Unparseable proof obligation generated: bad projector" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "11/10/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0143/Pretty.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | axiom A is 4 | (ex(x:Bool) x) => false 5 | 6 | axiom B is 7 | (let zero = 1 in zero) = zero 8 | 9 | axiom C is 10 | (if true then 1 else 2) + 3 = 4 11 | 12 | endspec 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0143/Status: -------------------------------------------------------------------------------- 1 | (143 2 | :name "Lack of parentheses alters meaning of generated proof obligations" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "11/10/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0144/Status: -------------------------------------------------------------------------------- 1 | (144 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0145/Status: -------------------------------------------------------------------------------- 1 | (145 2 | :name "Unambiguous < in subtype becomes ambiguous by commenting out def" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "11/19/04" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0145/Tests.lisp: -------------------------------------------------------------------------------- 1 | (test-directories ".") 2 | 3 | (test 4 | ("Bug 0145 : Unambiguous < in subtype becomes ambiguous by commenting out def" 5 | :sw "ambigLt" 6 | :output '((:optional "") 7 | ";;; Elaborating spec at $TESTDIR/ambigLt" 8 | (:optional "") 9 | )) 10 | ) 11 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0145/ambigLt.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | type Seq a 4 | 5 | op length : [a] Seq a -> Nat 6 | 7 | op c : [a] a % just so that the def below can return something 8 | 9 | op nth : [a] {(s,i) : Seq a * Nat | i < length s} -> a 10 | %def nth(s,i) = c 11 | 12 | endspec 13 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0146/NonConstructive.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op loser : Nat -> Nat 4 | def loser = loser o loser 5 | 6 | endspec -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0146/Status: -------------------------------------------------------------------------------- 1 | (146 2 | :name "Code for nonconstructive definitions is generated.(Actually issue of proof obligation)" 3 | :owner "SW" 4 | :reporter "JM" 5 | :reported "12/09/04" 6 | :status :closed 7 | :severity :low 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0147/BadMorphisms.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | 3 | type A = Nat 4 | 5 | endspec 6 | 7 | B = spec 8 | type B 9 | 10 | endspec 11 | 12 | MissingTypeDef = morphism A -> B {A +-> B} 13 | 14 | X = spec 15 | 16 | op f : Nat -> Nat 17 | def f n = n + n 18 | 19 | endspec 20 | 21 | Y = spec 22 | 23 | op g : Nat -> Nat 24 | 25 | endspec 26 | 27 | MissingOpDef = morphism X -> Y {f +-> g} 28 | 29 | 30 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0147/Status: -------------------------------------------------------------------------------- 1 | (147 2 | :name "Morphisms should not be allowed to map defined types or ops into undefined ones" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "12/14/04" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0148/ImportNum.sw: -------------------------------------------------------------------------------- 1 | A1 = spec endspec 2 | 3 | B1 = spec import A1 endspec 4 | 5 | B2 = spec import ImportNum#A1 endspec 6 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0148/Status: -------------------------------------------------------------------------------- 1 | (148 2 | :name "UnitId parsing error when # name includes a number" 3 | :owner "JM" 4 | :reporter 5 | :reported 6 | :status :closed 7 | :severity :medium 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0149/Status: -------------------------------------------------------------------------------- 1 | (149 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0150/Status: -------------------------------------------------------------------------------- 1 | (150 2 | :name "Spec /Library/General/FiniteSequencesAsLists doesn't type-check any more (it used to)" 3 | :owner "SW" 4 | :reporter "AC" 5 | :reported "02/24/05" 6 | :status :closed 7 | :severity :high 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0151/Status: -------------------------------------------------------------------------------- 1 | (151 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0152/Status: -------------------------------------------------------------------------------- 1 | (152 2 | :name "Showing obligations of anonymous spec causes break into Lisp" 3 | :owner "SW" 4 | :reporter "LM" 5 | :reported "03/08/05" 6 | :status :closed 7 | :severity :low 8 | :impact :low 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0153/Status: -------------------------------------------------------------------------------- 1 | (153 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0154/Status: -------------------------------------------------------------------------------- 1 | (154 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0155/Status: -------------------------------------------------------------------------------- 1 | (155 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0156/Status: -------------------------------------------------------------------------------- 1 | (156 2 | :name "non-exhaustive match failure in lambdaLift" 3 | :reporter "MA 4 | :reported "03/31/05" 5 | :owner "SW" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0157/Status: -------------------------------------------------------------------------------- 1 | (157 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0158/Status: -------------------------------------------------------------------------------- 1 | (158 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0159/Status: -------------------------------------------------------------------------------- 1 | (159 2 | :owner "JM/SW" 3 | :name "Substitution fails on imports of imports: wreaks havoc on Accord" 4 | :reporter "JM" 5 | :reported "05/23/05" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0160/Status: -------------------------------------------------------------------------------- 1 | (160 2 | :name "Merging of disparate sorts should not be allowed" 3 | :reporter "JM" 4 | :reported "06/15/05" 5 | :owner "JM" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0160/subst_spec.sw: -------------------------------------------------------------------------------- 1 | 2 | A = spec 3 | type A 4 | end-spec 5 | 6 | B = spec 7 | op foo (nats: List Nat): List Bool = 8 | map (fn(n:Nat) -> if n=0 then false else true) nats 9 | type B 10 | end-spec 11 | 12 | M = morphism A -> B {A +-> B} 13 | 14 | C = spec 15 | import A 16 | op foo : A -> A 17 | end-spec 18 | 19 | subst_spec = C[M] 20 | 21 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0161/Status: -------------------------------------------------------------------------------- 1 | (161 2 | :owner "JM" 3 | :name "C generation failed for constructors with args of complex types" 4 | :reporter "JM" 5 | :reported "06/21/05" 6 | :status :closed 7 | :severity :crash 8 | :impact :high 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0162/Status: -------------------------------------------------------------------------------- 1 | (162 2 | :name "C code generation should print newlines within strings as '\n'" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "06/23/05" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0163/Status: -------------------------------------------------------------------------------- 1 | (163 2 | :name "C code generation needs all (or at least more) fn decls in .h file" 3 | :owner "JM" 4 | :reporter "JM" 5 | :reported "06/23/05" 6 | :status :closed 7 | :severity :high 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0164/Status: -------------------------------------------------------------------------------- 1 | (164 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0165/Status: -------------------------------------------------------------------------------- 1 | (165 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0166/Status: -------------------------------------------------------------------------------- 1 | (166 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0167/Status: -------------------------------------------------------------------------------- 1 | (167 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0168/Status: -------------------------------------------------------------------------------- 1 | (168 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0169/Status: -------------------------------------------------------------------------------- 1 | (169 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0170/Status: -------------------------------------------------------------------------------- 1 | (170 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0171/Status: -------------------------------------------------------------------------------- 1 | (171 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0172/Status: -------------------------------------------------------------------------------- 1 | (172 2 | :name "Printer crashes on spec importing qualification of spec-form" 3 | :reporter "LM" 4 | :reported "08/07/05" 5 | :owner "SW" 6 | :status :closed 7 | :severity :crash 8 | :impact :medium 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0173/Status: -------------------------------------------------------------------------------- 1 | (173 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0174/Status: -------------------------------------------------------------------------------- 1 | (174 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0175/Status: -------------------------------------------------------------------------------- 1 | (175 2 | :name 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0176/Status: -------------------------------------------------------------------------------- 1 | (176 2 | :name "Typed patterns are not handled systematically" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0177/Status: -------------------------------------------------------------------------------- 1 | (177 2 | :name "Quick Reference has typo :sw-spec" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed "09/08/03" 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_50.html -------------------------------------------------------------------------------- /TestSuite/Bugs/Bug_0178/Status: -------------------------------------------------------------------------------- 1 | (178 2 | :name "Unambiguous op becomes "ambiguous" if def is commented out" 3 | :reporter 4 | :reported 5 | :owner 6 | :status 7 | :severity 8 | :impact 9 | :closed 10 | :fixed-in 11 | ) 12 | 13 | --description-- 14 | 15 | --solution-- 16 | 17 | --commentary-- 18 | 19 | 20 | /fs/3/jakarta-tomcat-3.2.3/webapps/ROOT/sparrow_2.0/bugs/Details_137.html 21 | 22 | -------------------------------------------------------------------------------- /TestSuite/Bugs/Tests.lisp: -------------------------------------------------------------------------------- 1 | (cl-user::sw-init) 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /TestSuite/JavaCodeGen/Factorial.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op fact : {i : Int | i >= 0} -> Int 4 | 5 | def fact(i) = if i = 0 then 1 6 | else i * (fact(i-1)) 7 | 8 | endspec 9 | -------------------------------------------------------------------------------- /TestSuite/JavaCodeGen/GCD.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op gcd : {(n1,n2) : Int * Int | n1 > 0 && n2 > 0} -> Int 4 | 5 | def gcd(n1,n2) = if (n1 > n2) then gcd(n1-n2,n2) 6 | else if (n1 < n2) then gcd(n1,n2-n1) 7 | else (* n1 = n2 *) n1 % = n2 8 | 9 | endspec 10 | -------------------------------------------------------------------------------- /TestSuite/JavaCodeGen/HigherOrder.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op ho : (Int -> Int) -> Int 4 | def ho f = f 2 5 | 6 | op sqr : Int -> Int 7 | def sqr i = i * i 8 | 9 | op hoUser : Int -> Int 10 | def hoUser i = 11 | let i1 = ho(fn x -> x+1) in 12 | let i2 = ho sqr in 13 | let i3 = ho(fn y -> y-i) in 14 | i1 + i2 + i3 15 | 16 | endspec 17 | -------------------------------------------------------------------------------- /TestSuite/JavaCodeGen/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains files to test the Java code generator. 2 | 3 | The Test.java are hand-written files to test the .java files 4 | generated from the .sw files. (Not all 's have such test files.) 5 | 6 | -------------------------------------------------------------------------------- /TestSuite/JavaCodeGen/tutorial/README.txt: -------------------------------------------------------------------------------- 1 | This directory contains a re-phrasing of the Specware tutorial example to fit 2 | the current limitations of the Java code generator. 3 | -------------------------------------------------------------------------------- /TestSuite/Misc/ImplPoly.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | def count(l) = List.length(l) 4 | 5 | op foo: fa(a) List(a) -> Nat 6 | def foo(l) = count(l) 7 | 8 | endspec 9 | 10 | -------------------------------------------------------------------------------- /TestSuite/Misc/ListOblig.sw: -------------------------------------------------------------------------------- 1 | obligations /Library/Base/List -------------------------------------------------------------------------------- /TestSuite/Misc/QuotientPattern.sw: -------------------------------------------------------------------------------- 1 | spec 2 | type Bag a = (List a) / perm? 3 | op perm?: fa(a) List a * List a -> Bool 4 | op bag_fold : [a,b] b -> 5 | {f : b * a -> b | fa(x,y,z) f(f(x,y),z) = f(f(x,z),y)} -> 6 | Bag a -> 7 | b 8 | def bag_fold c f (quotient[Bag] l) = (foldl f c l) 9 | endspec 10 | -------------------------------------------------------------------------------- /TestSuite/Misc/RestrictObligation.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | %op Nat.+ infixl 25: Nat * Nat -> Nat 3 | op nonNeg?: Int -> Bool 4 | 5 | op f: {p: Int * Int | p.1 > - p.2} -> Nat 6 | %def f(x,y) = x Nat.+ y 7 | 8 | 9 | def f(x,y) = restrict nonNeg? (x Integer.+ y) 10 | %def f(x,y) = (restrict nonNeg? x) Nat.+ (restrict nonNeg? y) 11 | endspec 12 | 13 | O = obligations A 14 | 15 | P = prove f_Obligation in O 16 | 17 | P0 = prove f_Obligation0 in O 18 | -------------------------------------------------------------------------------- /TestSuite/Misc/SubstRestrictedPat.sw: -------------------------------------------------------------------------------- 1 | A= 2 | spec 3 | 4 | def f x = 5 | let b = head x in 6 | case x of 7 | | a::_ | a = b -> a 8 | | _ -> 0 9 | 10 | def v = f [3] 11 | 12 | endspec 13 | 14 | B= 15 | spec 16 | 17 | def g x = 18 | let p = true in 19 | case x of 20 | | a::_ | p -> a 21 | | _ -> 0 22 | 23 | endspec 24 | -------------------------------------------------------------------------------- /TestSuite/Misc/a.sw: -------------------------------------------------------------------------------- 1 | spec A 2 | type A 3 | op id1: A -> A 4 | end 5 | -------------------------------------------------------------------------------- /TestSuite/Misc/b.sw: -------------------------------------------------------------------------------- 1 | spec 2 | import a 3 | op f: A -> A 4 | def f = id1 5 | end 6 | -------------------------------------------------------------------------------- /TestSuite/Misc/c.sw: -------------------------------------------------------------------------------- 1 | spec 2 | import b 3 | def g x = f x 4 | end -------------------------------------------------------------------------------- /TestSuite/Misc/colimit.sw: -------------------------------------------------------------------------------- 1 | A = spec def fubaz = 12345 endspec 2 | 3 | D = diagram { X +-> A, Y +-> A } 4 | 5 | C = colimit D 6 | 7 | E = spec import C def f x = x + 1 endspec -------------------------------------------------------------------------------- /TestSuite/Misc/fib.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op computeFib: Nat -> Nat 4 | op computeFibH: Nat * Nat * Nat -> Nat 5 | def computeFib(n) = 6 | case n of 7 | | 0 -> 0 8 | | 1 -> 1 9 | | _ -> computeFibH(n-2,1,1) 10 | def computeFibH(n, fib1, fib2) = 11 | if n = 0 then fib1 + fib2 12 | else computeFibH(n-1,fib1+fib2, fib1) 13 | endspec 14 | -------------------------------------------------------------------------------- /TestSuite/Misc/fibParseErr.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op computeFib: Nat -> Nat 4 | op computeFibH: Nat * Nat * Nat -> Bool 5 | def computeFIb(n) = 6 | case n of 7 | | 0 -> 0 8 | | 1 -> 1 9 | | _ -> computeFibH(n-2,1,1 10 | def computeFibH(n, fib1, fib2) = 11 | if n = 0 then fib1 + fib2 12 | else computeFibH(n-1,fib1+fib2, fib1) 13 | endspec 14 | -------------------------------------------------------------------------------- /TestSuite/Misc/fibTyErr1.sw: -------------------------------------------------------------------------------- 1 | spec 2 | 3 | op computeFib: Nat -> Nat 4 | op computeFibH: Nat * Nat * Nat -> Bool 5 | def computeFIb(n) = 6 | case n of 7 | | 0 -> 0 8 | | 1 -> 1 9 | | _ -> computeFibH(n-2,1,1) 10 | def computeFibH(n, fib1, fib2) = 11 | if n = 0 then fib1 + fib2 12 | else computeFibH(n-1,fib1+fib2, fib1) 13 | endspec 14 | -------------------------------------------------------------------------------- /TestSuite/Misc/genC.sw: -------------------------------------------------------------------------------- 1 | %generate c GCD 2 | GCD = generate c GCD 3 | %Fact = generate c Factorial 4 | %Lists = generate c Lists 5 | %Expressions = generate java Expressions 6 | %Points = generate c Points 7 | %MergeSort = generate c MergeSort 8 | -------------------------------------------------------------------------------- /TestSuite/Misc/nameGen.sw: -------------------------------------------------------------------------------- 1 | spec 2 | %import /Library/Base/Boolean 3 | %type Option a = | None | Some a 4 | def f x = case x of 5 | | Some (Some y) -> y 6 | | _ -> true 7 | def g x = case x of 8 | | Some (Some y) -> y 9 | | _ -> false 10 | endspec 11 | -------------------------------------------------------------------------------- /TestSuite/Misc/obligFib.sw: -------------------------------------------------------------------------------- 1 | obligations fib -------------------------------------------------------------------------------- /TestSuite/Misc/order.sw: -------------------------------------------------------------------------------- 1 | order = spec 2 | import B 3 | type X 4 | endspec 5 | 6 | B = spec 7 | import C 8 | type Y 9 | endspec 10 | 11 | C = spec 12 | type Z 13 | endspec 14 | -------------------------------------------------------------------------------- /TestSuite/Misc/poly.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f: fa(a) a -> Bool 3 | op g: fa(b) b -> Bool 4 | %def f(x) = g x 5 | def fa(a) f(x:a) = g(x:a) 6 | endspec 7 | -------------------------------------------------------------------------------- /TestSuite/Misc/proveOblig.sw: -------------------------------------------------------------------------------- 1 | prove computeFibH in obligFib -------------------------------------------------------------------------------- /TestSuite/Misc/psl1.sw: -------------------------------------------------------------------------------- 1 | psl { 2 | op even : Nat -> Bool 3 | 4 | proc expon(x : Nat, y : Nat) : Nat { 5 | let 6 | var z : Nat 7 | in { 8 | z := 1; 9 | do { 10 | ~(y = 0) -> 11 | do { 12 | even y -> 13 | x := x * 2; 14 | y := y div 2 15 | }; 16 | y := y - 1; 17 | z := z * x 18 | }; 19 | return z 20 | }} 21 | } 22 | 23 | -------------------------------------------------------------------------------- /TestSuite/Misc/qual.sw: -------------------------------------------------------------------------------- 1 | A qualifying spec 2 | def two: Nat = 2 3 | def add1(x:Nat): Nat = x + 1 4 | endspec 5 | -------------------------------------------------------------------------------- /TestSuite/Misc/simple.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f: Nat -> Nat 3 | def f(x) = x + 1 4 | end -------------------------------------------------------------------------------- /TestSuite/Misc/subsortOblig.sw: -------------------------------------------------------------------------------- 1 | obligations 2 | spec 3 | op f: Nat -> Nat 4 | def f(x) = x + 1 5 | end -------------------------------------------------------------------------------- /TestSuite/TWKtests/Embed.sw: -------------------------------------------------------------------------------- 1 | spec 2 | type XXX = |XX Nat|YY Nat 3 | %op v: Bool 4 | def v = embed? XX (XX 5) 5 | endspec 6 | -------------------------------------------------------------------------------- /TestSuite/TWKtests/NilDef.sw: -------------------------------------------------------------------------------- 1 | Sets = spec 2 | type E 3 | type Set E = | MyNil | Insert E * Set E 4 | op nil : Set E 5 | def nil = MyNil 6 | op xx : Set E 7 | conjecture nildef is nil = MyNil 8 | conjecture xxdef is xx = MyNil 9 | endspec 10 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copyOp_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copyOp#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/copyOp#A 3 | ERROR: in transform: Expected argument: OpName 4 | found in $TESTDIR/copyOp.sw 5 | 16.34-16.36 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copyOp_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copyOp#TF_Bad_2 2 | ERROR: in transform: Expected argument: OpName 3 | found in $TESTDIR/copyOp.sw 4 | 18.21-18.23 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copyOp_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copyOp#TF_Good_1 2 | -showSpec----------- 3 | ##4 A with copy of op 'f' 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | op fNEW: T -> T 9 | end-spec 10 | 11 | -------------------- 12 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copyOp_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copyOp#TF_Good_2 2 | -showSpec----------- 3 | ##4 A with copy of op 'f' 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | op fNEW: T -> T 9 | end-spec 10 | 11 | -------------------- 12 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copySpec_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copySpec#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/copySpec#A 3 | ERROR: in transform: Too many arguments to transform 4 | found in $TESTDIR/copySpec.sw 5 | 16.36-16.46 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copySpec_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copySpec#TF_Bad_2 2 | ERROR: in transform: Too many arguments to transform 3 | found in $TESTDIR/copySpec.sw 4 | 17.23-17.33 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copySpec_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copySpec#TF_Good_1 2 | -showSpec----------- 3 | ##4 copy of A 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/copySpec_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/copySpec#TF_Good_2 2 | -showSpec----------- 3 | ##4 copy of A 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/doNothing_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/doNothing#TF_Bad_1 2 | ERROR: Unknown unit A0 3 | referenced from $TESTDIR/doNothing.sw 4 | 16.21-16.22 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/doNothing_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/doNothing#TF_Bad_2 2 | ERROR: Unknown unit A0 3 | referenced from $TESTDIR/doNothing.sw 4 | 17.11-17.12 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/doNothing_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/doNothing#TF_Good_1 2 | ;;; Elaborating spec at $TESTDIR/doNothing#A 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/doNothing_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/doNothing#TF_Good_2 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/isomorphism_BitBool_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/isomorphism_BitBool#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/isomorphism_BitBool#Bit2Bool_Step1 3 | ;;; Elaborating spec at $TESTDIR/isomorphism_BitBool#Bit 4 | No op with name: toBool 5 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/isomorphism_BitBool_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/isomorphism_BitBool#TF_Bad_2 2 | No op with name: toBool 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/isomorphism_BitBool_TF_Bad_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/isomorphism_BitBool#TF_Bad_3 2 | ERROR: in transform: Expected argument: List Rule 3 | found in $TESTDIR/isomorphism_BitBool.sw 4 | 30.83-30.92 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/makeImportingSpec_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/makeImportingSpec#TF_Good_1 2 | ;;; Elaborating spec at $TESTDIR/makeImportingSpec#A 3 | -showSpec----------- 4 | ##4 5 | spec 6 | import $TESTDIR/makeImportingSpec#A 7 | end-spec 8 | 9 | -------------------- 10 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/makeImportingSpec_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/makeImportingSpec#TF_Good_2 2 | ;;; Elaborating spec-morphism at $TESTDIR/makeImportingSpec#M 3 | ;;; Elaborating spec at $TESTDIR/makeImportingSpec#B 4 | -showSpec----------- 5 | ##4 6 | spec 7 | import $TESTDIR/makeImportingSpec#B 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/showElements#B 3 | ;;; Elaborating spec at $TESTDIR/showElements#A 4 | ERROR: in transform: Expected argument: Num 5 | found in $TESTDIR/showElements.sw 6 | 21.43-21.46 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Bad_2 2 | ERROR: in transform: Expected argument: Num 3 | found in $TESTDIR/showElements.sw 4 | 22.30-22.33 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Bad_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Bad_3 2 | ERROR: in transform: Expected argument: Bool 3 | found in $TESTDIR/showElements.sw 4 | 25.45-25.45 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Bad_4.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Bad_4 2 | ERROR: in transform: Unexpected argument type 3 | found in $TESTDIR/showElements.sw 4 | 29.39-29.51 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Bad_5.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Bad_5 2 | ERROR: in transform: Too many arguments to transform 3 | found in $TESTDIR/showElements.sw 4 | 33.40-33.41 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Good_1 2 | -Elements----------- 3 | ##1 elems 4 | Import: A 5 | Import: /Library/Base 6 | Import: Base/String 7 | Import: Base/Empty 8 | Type: T 9 | Op: f 10 | Op: g 11 | -------------------- 12 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showElements_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showElements#TF_Good_2 2 | -Elements----------- 3 | ##1 elems 4 | Import: A 5 | Import: /Library/Base 6 | Import: Base/String 7 | Import: Base/Empty 8 | Type: T 9 | Op: f 10 | Op: g 11 | -------------------- 12 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/showSpec#A 3 | ERROR: in transform: Missing field: Str 4 | found in $TESTDIR/showSpec.sw 5 | 16.35-16.35 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_Bad_2 2 | ERROR: in transform: Missing field: Str 3 | found in $TESTDIR/showSpec.sw 4 | 17.22-17.22 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_Good_1 2 | -showSpec----------- 3 | ##4 abc 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_Good_2 2 | -showSpec----------- 3 | ##4 abc 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_WasBad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_WasBad_1 2 | ;;; Elaborating spec at $TESTDIR/showSpec#A 3 | -showSpec----------- 4 | ##4 5 | spec 6 | 7 | type T 8 | op f: T -> T 9 | end-spec 10 | 11 | -------------------- 12 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/showSpec_TF_WasBad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/showSpec#TF_WasBad_2 2 | -showSpec----------- 3 | ##4 4 | spec 5 | 6 | type T 7 | op f: T -> T 8 | end-spec 9 | 10 | -------------------- 11 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/trace_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/trace#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/trace#A 3 | ERROR: in transform: Unrecognized transform: trace 4 | found in $TESTDIR/trace.sw 5 | 17.27-17.31 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/trace_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/trace#TF_Bad_2 2 | ERROR: in transform: Trace on or off? 3 | found in $TESTDIR/trace.sw 4 | 21.27-21.34 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/trace_TF_Bad_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/trace#TF_Bad_3 2 | ERROR: in transform: Trace on or off? 3 | found in $TESTDIR/trace.sw 4 | 25.27-25.37 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/trace_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/trace#TF_Good_1 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/trace_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/trace#TF_Good_2 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/unknown_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/unknown#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/unknown#A 3 | ERROR: in transform: Unrecognized transform: nonExistentSpecTransform 4 | found in $TESTDIR/unknown.sw 5 | 15.27-15.50 -------------------------------------------------------------------------------- /TestSuite/Transform/SpecTransform/unknown_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/unknown#TF_Bad_2 2 | ERROR: in transform: Unrecognized transform: nonExistentSpecTransform 3 | found in $TESTDIR/unknown.sw 4 | 16.14-16.37 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/at_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/at#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/at#A 3 | In transform, At referenced unknown op: f 4 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/at_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/at#TF_Good_1 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/lr_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/lr#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/lr#A 3 | WARNING: Rule-shaped theorem ex_some1 unable to extract any rules! 4 | f1a not modified. 5 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/lr_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/lr#TF_Bad_2 2 | ERROR: in transform: Id expected. 3 | found in $TESTDIR/lr.sw 4 | 25.38-25.46 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/lr_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/lr#TF_Good_2 2 | ;;; Elaborating spec at $TESTDIR/lr#B 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/move#A 3 | ERROR: in transform: Unrecognized move command: 1 4 | found in $TESTDIR/move.sw 5 | 27.38-27.38 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Bad_2 2 | ERROR: in transform: Unrecognized move command: s 3 | found in $TESTDIR/move.sw 4 | 30.38-30.38 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Bad_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Bad_3 2 | ERROR: in transform: Unrecognized move command: b 3 | found in $TESTDIR/move.sw 4 | 33.42-33.47 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Bad_4.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Bad_4 2 | ERROR: in transform: Illegal search string 3 | found in $TESTDIR/move.sw 4 | 36.41-36.41 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Good_1 2 | f not modified. 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Good_2 2 | f not modified. 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Good_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Good_3 2 | f not modified. 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Good_4.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Good_4 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/move_TF_Good_5.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/move#TF_Good_5 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/simpIf#B 3 | ;;; Elaborating spec at $TESTDIR/simpIf#A 4 | In transform, At referenced unknown op: f1 5 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Bad_2 2 | In transform, At referenced unknown op: f1 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_1 2 | -showSpec----------- 3 | ##4 simpIf 4 | spec 5 | import A 6 | refine def f (n: Int): 7 | {r: Int | 8 | let (m, ev__0) = g1 n in 9 | if m > 2 && (case ev__0 10 | of Some w -> (r = m ** w) 11 | | _ -> false) 12 | then g2 r 13 | else true} 14 | end-spec 15 | 16 | -------------------- 17 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_2 2 | g1 not modified. 3 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_3 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_4.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_4 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_5.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_5 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/simpIf_TF_Good_6.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/simpIf#TF_Good_6 2 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/structureEx_TF_Good_3.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/structureEx#TF_Good_3 2 | ;;; Elaborating spec at $TESTDIR/structureEx#B 3 | -showSpec----------- 4 | ##4 tf 5 | spec 6 | import A 7 | refine def f1 (n: Int): 8 | {r: Int | case g1 n 9 | of Some (Some m) -> (r = m ** 2) 10 | | _ -> false} 11 | end-spec 12 | 13 | -------------------- 14 | -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/syntax.goal: -------------------------------------------------------------------------------- 1 | WARNING: At line 16:30 Syntactic error with "{" 2 | WARNING: At line 20:32 Syntactic error with "[" 3 | WARNING: At line 21:32 Syntactic error with "(" 4 | WARNING: At line 25:39 Syntactic error with "," 5 | WARNING: At line 29:30 Syntactic error with "f" 6 | ;;; 6 resulting toplevel forms 7 | ERROR: Syntax error in file $TESTDIR/syntax.sw -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/unknown_TF_Bad_1.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/unknown#TF_Bad_1 2 | ;;; Elaborating spec at $TESTDIR/unknown#A 3 | ERROR: in transform: Unrecognized transform: ex_some 4 | found in $TESTDIR/unknown.sw 5 | 17.34-17.40 -------------------------------------------------------------------------------- /TestSuite/Transform/TermTransform/unknown_TF_Bad_2.goal: -------------------------------------------------------------------------------- 1 | ;;; Elaborating transform at $TESTDIR/unknown#TF_Bad_2 2 | ERROR: in transform: Unrecognized rule reference 3 | found in $TESTDIR/unknown.sw 4 | 20.44-20.50 -------------------------------------------------------------------------------- /Tools/GraTys/GraTys.ppt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/Tools/GraTys/GraTys.ppt -------------------------------------------------------------------------------- /Tools/GraTys/Grammar.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Structs 5 | 6 | type Notion = String 7 | type Tsymbol = String 8 | 9 | type Grammar = Map (Notion, Seq Alternative) 10 | 11 | type Alternative = Seq Element 12 | 13 | type Element = 14 | | Notion Notion 15 | | Tsymbol Tsymbol 16 | | Option Notion 17 | | Seq Notion 18 | | ProperSeq Notion 19 | 20 | endspec 21 | -------------------------------------------------------------------------------- /Tools/GraTys/Manifest: -------------------------------------------------------------------------------- 1 | The ABC sources: 2 | abc-sources 3 | 4 | The Metaslang sources: 5 | Fallible.sw 6 | Structs.sw 7 | Grammar.sw 8 | ParseGrammar.sw 9 | RawSmartSlangGrammar2.sw 10 | TheGrammar.sw 11 | Typedef.sw 12 | Metakeys.sw 13 | Text.sw 14 | TypedefToText.sw 15 | GrammarToTypedefs.sw 16 | 17 | PowerPoint Presentation: 18 | GraTys.ppt 19 | 20 | This file: 21 | Manifest 22 | -------------------------------------------------------------------------------- /Tools/GraTys/Text.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import Structs 5 | 6 | type Text = Seq String 7 | 8 | op glue : Seq Text -> Text 9 | def glue = tl o flatten o map (fn t -> Cons("", t)) 10 | 11 | op writeText : Text -> () 12 | def writeText = foldl (fn(line, _) -> writeLine line) () 13 | 14 | endspec 15 | -------------------------------------------------------------------------------- /Tools/GraTys/TheGrammar.sw: -------------------------------------------------------------------------------- 1 | (* Copyright 2015 Kestrel Institute. See file LICENSE for license details *) 2 | 3 | spec 4 | import ParseGrammar 5 | import RawSmartSlangGrammar2 6 | 7 | op theGrammar : Grammar 8 | def theGrammar = case parseGrammar rawGrammar of 9 | | OK g -> g 10 | | KO m -> (writeLine m; []) 11 | 12 | endspec 13 | -------------------------------------------------------------------------------- /UserDoc/ManualWritersGuide.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/ManualWritersGuide.pdf -------------------------------------------------------------------------------- /UserDoc/README-MANUAL-WRITERS.txt: -------------------------------------------------------------------------------- 1 | Read the 'Manual Writers Guide', located in 'ManualWritersGuide.pdf', for instructions on building and editing manuals using the restructuredtext format. 2 | -------------------------------------------------------------------------------- /UserDoc/SpecwareIsabelleInterface.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareIsabelleInterface.pdf -------------------------------------------------------------------------------- /UserDoc/SpecwareLanguageManual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareLanguageManual.pdf -------------------------------------------------------------------------------- /UserDoc/SpecwareQuickReference.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareQuickReference.pdf -------------------------------------------------------------------------------- /UserDoc/SpecwareTransformationManual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareTransformationManual.pdf -------------------------------------------------------------------------------- /UserDoc/SpecwareTutorial.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareTutorial.pdf -------------------------------------------------------------------------------- /UserDoc/SpecwareUserManual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/SpecwareUserManual.pdf -------------------------------------------------------------------------------- /UserDoc/examples/simple1/A.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f : Nat -> Nat 3 | axiom ax is f(0) = 0 4 | endspec 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/Aref.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f : Nat -> Nat 3 | def f(n) = 3*n 4 | endspec 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/B.sw: -------------------------------------------------------------------------------- 1 | spec 2 | import A 3 | op g : Nat -> Nat 4 | def g(n) = 2*f(n) 5 | endspec 6 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/Bref.sw: -------------------------------------------------------------------------------- 1 | B[M] 2 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/M.sw: -------------------------------------------------------------------------------- 1 | morphism A -> Aref {} 2 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/Wrong.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op h : Nat -> Nat 3 | axiom wr is h(0,1) = 0 4 | endspec 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple1/test.lisp: -------------------------------------------------------------------------------- 1 | (swl "Bref" "B") 2 | (load "B") 3 | (SW-User::f 7) ; result = 21 4 | (SW-User::g 3) ; result = 18 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/Refs/A.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f : Nat -> Nat 3 | def f(n) = 3*n 4 | endspec 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/Refs/B.sw: -------------------------------------------------------------------------------- 1 | /Specs/B[M] 2 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/Refs/M.sw: -------------------------------------------------------------------------------- 1 | morphism /Specs/A -> /Refs/A {} 2 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/Specs/A.sw: -------------------------------------------------------------------------------- 1 | spec 2 | op f : Nat -> Nat 3 | axiom ax is f(0) = 0 4 | endspec 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/Specs/B.sw: -------------------------------------------------------------------------------- 1 | spec 2 | import A 3 | op g : Nat -> Nat 4 | def g(n) = 2*f(n) 5 | endspec 6 | -------------------------------------------------------------------------------- /UserDoc/examples/simple2/test.lisp: -------------------------------------------------------------------------------- 1 | (swl "Refs/B" "B") 2 | (load "B") 3 | (BREF::f 7) ; result = 21 4 | (BREF::g 3) ; result = 18 5 | -------------------------------------------------------------------------------- /UserDoc/examples/simple3/Refs.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | op f : Nat -> Nat 3 | def f(n) = 3*n 4 | endspec 5 | 6 | M = morphism Specs#A -> A {} 7 | 8 | B = Specs#B[M] 9 | -------------------------------------------------------------------------------- /UserDoc/examples/simple3/Specs.sw: -------------------------------------------------------------------------------- 1 | A = spec 2 | op f : Nat -> Nat 3 | axiom ax is f(0) = 0 4 | endspec 5 | 6 | B = spec 7 | import A 8 | op g : Nat -> Nat 9 | def g(n) = 2*f(n) 10 | endspec 11 | -------------------------------------------------------------------------------- /UserDoc/examples/simple3/test.lisp: -------------------------------------------------------------------------------- 1 | (swl "Refs#B" "B") 2 | (load "B") 3 | (BREF::f 7) ; result = 21 4 | (BREF::g 3) ; result = 18 5 | -------------------------------------------------------------------------------- /UserDoc/sources/isabelle-interface/index.rst: -------------------------------------------------------------------------------- 1 | .. Specware Isabelle Interface documentation master file, created by 2 | sphinx-quickstart on Fri Oct 19 11:49:29 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Specware Isabelle Interface's documentation! 7 | ======================================================= 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | concepts 13 | usage 14 | 15 | -------------------------------------------------------------------------------- /UserDoc/sources/language-manual/bookinfo.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | 2001-2009 4 | |copyrightholder| 5 | 6 | 7 | 2001-2009 8 | |copyrightholder2| 9 | 10 | 11 | 12 | 13 | All rights reserved 14 | 15 | 16 | 17 | The name 18 | Specware 19 | is a registered trademark of |trademarkholder| 20 | 21 | -------------------------------------------------------------------------------- /UserDoc/sources/language-manual/disclaimer.rst: -------------------------------------------------------------------------------- 1 | 2 | 3 | ========== 4 | Disclaimer 5 | ========== 6 | 7 | As experience is gained with |SpecwareV|, both the operation of the 8 | |Specware| system and the |Metaslang| language are bound to undergo 9 | changes, which may not always be fully 10 | "backwards compatible". 11 | 12 | For updates, news and bug reports, visit the |Specware| web site 13 | http://www.specware.org. 14 | 15 | -------------------------------------------------------------------------------- /UserDoc/sources/quick-reference/QuickReference.doc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/UserDoc/sources/quick-reference/QuickReference.doc -------------------------------------------------------------------------------- /UserDoc/sources/quick-reference/index.rst: -------------------------------------------------------------------------------- 1 | .. Specware Quick Reference documentation master file, created by 2 | sphinx-quickstart on Tue Nov 13 14:04:32 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Specware Quick Reference's documentation! 7 | ==================================================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | refcard 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /UserDoc/sources/tutorial/index.rst: -------------------------------------------------------------------------------- 1 | .. Specware Tutorial documentation master file, created by 2 | sphinx-quickstart on Fri Oct 19 12:08:51 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Specware Tutorial's documentation! 7 | ============================================= 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | concepts 13 | example 14 | -------------------------------------------------------------------------------- /UserDoc/sources/writers-guide/index.rst: -------------------------------------------------------------------------------- 1 | .. Manual Writer's Guide documentation master file, created by 2 | sphinx-quickstart on Mon Oct 22 11:30:13 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Manual Writer's Guide's documentation! 7 | ================================================= 8 | 9 | Contents: 10 | 11 | .. toctree:: 12 | :maxdepth: 2 13 | 14 | using 15 | writing 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /UserDoc/sources/xform-manual/index.rst: -------------------------------------------------------------------------------- 1 | .. Specware Transformation Manual documentation master file, created by 2 | sphinx-quickstart on Fri Oct 19 13:03:46 2012. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | Welcome to Specware Transformation Manual's documentation! 7 | ========================================================== 8 | 9 | .. toctree:: 10 | :maxdepth: 2 11 | 12 | intro 13 | xshell 14 | iso 15 | defining 16 | -------------------------------------------------------------------------------- /bin/README.txt: -------------------------------------------------------------------------------- 1 | specware-shell Runs Specware in a shell (e.g., a terminal or pre-existing emacs Shell) 2 | specware-emacs Starts a new Emacs with Specware running in it. 3 | Specware.app OS X (Apple Mac) application (command-option-drag to make an alias/shortcut) 4 | specware-emacs-isabelle Starts a new Emacs with Specware and Isabelle running in it (DEPRECATED: 5 | Instead, run "isabelle jedit".) 6 | 7 | -------------------------------------------------------------------------------- /bin/Specware.app/Contents/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/bin/Specware.app/Contents/Info.plist -------------------------------------------------------------------------------- /bin/Specware.app/Contents/MacOS/Specware: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/bin/Specware.app/Contents/MacOS/Specware -------------------------------------------------------------------------------- /bin/Specware.app/Contents/Resources/AppSettings.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/bin/Specware.app/Contents/Resources/AppSettings.plist -------------------------------------------------------------------------------- /bin/Specware.app/Contents/Resources/MainMenu.nib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/bin/Specware.app/Contents/Resources/MainMenu.nib -------------------------------------------------------------------------------- /bin/Specware.app/Contents/Resources/appIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/KestrelInstitute/Specware/3e3057b9fa9cd74f0e0507217f4c3073177481f6/bin/Specware.app/Contents/Resources/appIcon.icns -------------------------------------------------------------------------------- /bin/Specware.app/Contents/Resources/script: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ../../../specware-emacs 4 | --------------------------------------------------------------------------------