fact: Definition DnsSpec : ADT DnsSig := Def ADT { rep := QueryStructure DnsSchema, Def Constructor "Init" : rep := empty,, Def Method1 "AddData" (this : rep) (t : resourceRecord) : rep * bool := Insert t into this!sRRecords, Def Method1 "Process" (this : rep) (b : ByteString) : rep * (option ByteString) := p <- Pick_Decoder_For DNS_Packet_OK encode_packet_Spec b list_CacheEncode_empty; Ifopt p as p' Then p' <- ret (buildempty true ``"NoError" p'); b' <- encode_packet_Spec p' list_CacheEncode_empty; ret (this, Some (fst b')) Else ret (this, None) }.
imports: Coq.Vectors.Vector Coq.Strings.Ascii Coq.Bool.Bool Coq.Lists.List Fiat.Common.Tactics.CacheStringConstant Fiat.Computation.Decidable Fiat.Computation.IfDec Fiat.Computation.FoldComp Fiat.Computation.FueledFix Fiat.Computation.ListComputations Fiat.QueryStructure.Automation.Common Fiat.QueryStructure.Automation.MasterPlan Fiat.QueryStructure.Implementation.DataStructures.BagADT.BagADT Fiat.QueryStructure.Automation.IndexSelection Fiat.QueryStructure.Specification.SearchTerms.ListPrefix Fiat.QueryStructure.Automation.SearchTerms.FindStringPrefixSearchTerms Fiat.QueryStructure.Automation.QSImplementation Bedrock.Word Fiat.Narcissus.Common.Specs Fiat.Narcissus.BinLib.Core Fiat.Narcissus.Examples.SimpleDnsOpt Fiat.Narcissus.Lib2.DomainNameOpt Fiat.Examples.DnsServer.SimplePacket Fiat.Examples.DnsServer.DecomposeSumField Fiat.Examples.DnsServer.SimpleDnsLemmas Fiat.Examples.DnsServer.DnsAutomation Fiat.Examples.DnsServer.SimpleAuthoritativeDNSSchema