예제 #1
0
        public ProofFileCollection(Program i_prog, ModuleDefinition i_mainProof)
        {
            prog            = i_prog;
            name            = i_mainProof.Name;
            mainProof       = new ProofFile(i_mainProof, name, true);
            auxiliaryProofs = new Dictionary <string, ProofFile>();
            pg = null;

            var dirName = $"{ArmadaOptions.O.ArmadaOutputDir}/{name}";

            if (!Directory.Exists(dirName))
            {
                Directory.CreateDirectory(dirName);
            }
        }
예제 #2
0
        public ProofFile CreateAuxiliaryProofFile(string auxName, bool includeImportedFiles = true)
        {
            if (auxiliaryProofs.ContainsKey(auxName))
            {
                AH.PrintError(prog, Token.NoToken, $"Attempt to create an auxiliary proof file with an already-existing name ({auxName})");
                return(null);
            }

            var proof = new ProofFile(name, auxName, includeImportedFiles);

            if (pg != null)
            {
                pg.AddCommonHeaderElements(proof);
            }
            auxiliaryProofs[auxName] = proof;
            return(proof);
        }