fact: Definition chan : Pervasives.in_channel := match z_of_int (Array.length Sys.argv) with | 0%Z | 1%Z => Pervasives.stdin | 2%Z => let chan := Pervasives.open_in (Array.get Sys.argv 1) in let v := Pervasives.at_exit (fun _ => Pervasives.close_in chan) in Ocaml.sequence v chan | argc => Pervasives.exit (int_of_z argc) end.
imports: Fiat.Common.Equality Fiat.Parsers.ParserFromParserADT Coq.ZArith.BinInt Fiat.Parsers.Refinement.Tactics Fiat.Common.BoolFacts Fiat.ADTNotation.BuildComputationalADT Fiat.Common.NatFacts Fiat.Parsers.StringLike.FirstCharSuchThat Coq.Strings.Ascii Coq.extraction.ExtrOcamlBasic Coq.extraction.ExtrOcamlNatInt Coq.extraction.ExtrOcamlZInt Coq.extraction.ExtrOcamlString Coq.extraction.ExtrOcamlIntConv Fiat.Parsers.ExtrOcamlPrimitives