{
  "prefix": {
    "pe": "https://proofengine.info/proofs/a-real-number-is-rational-if-and-only-if-its-decim/",
    "prov": "http://www.w3.org/ns/prov#",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "schema": "http://schema.org/"
  },
  "entity": {
    "pe:claim": {
      "prov:type": "pe:Claim",
      "prov:label": "A real number is rational if and only if its decimal expansion is eventually periodic.",
      "prov:value": "A real number is rational if and only if its decimal expansion is eventually periodic."
    },
    "pe:evidence-A1": {
      "prov:type": "pe:ComputedEvidence",
      "prov:label": "Direction 1: Long division of p/q produces eventually periodic digits (pigeonhole on remainders)",
      "pe:factId": "A1",
      "pe:evidenceType": "computed",
      "pe:method": "Long division of p/q tracking remainders; pigeonhole principle guarantees remainder repetition within q steps, creating a periodic cycle. Tested on 35 rationals including terminating, purely repeating, and mixed cases.",
      "pe:result": "All 35 cases passed: expansion is eventually periodic and round-trips to original fraction"
    },
    "pe:evidence-A2": {
      "prov:type": "pe:ComputedEvidence",
      "prov:label": "Direction 2: Every eventually periodic decimal converts to a fraction p/q",
      "pe:factId": "A2",
      "pe:evidenceType": "computed",
      "pe:method": "Algebraic conversion: for decimal 0.d\u2081...d\u2096(r\u2081...r\u209a), multiply by 10^(k+p) and 10^k, subtract to eliminate the repeating part, yielding a ratio of integers. Tested on 14 periodic decimals.",
      "pe:result": "All 14 cases converted to correct fractions and round-tripped"
    },
    "pe:evidence-A3": {
      "prov:type": "pe:ComputedEvidence",
      "prov:label": "Cross-check: Python Fraction confirms rational \u2194 periodic equivalence",
      "pe:factId": "A3",
      "pe:evidenceType": "computed",
      "pe:method": "Exhaustive test of all p/q with 1 \u2264 q \u2264 200, 0 \u2264 p < q: long_division \u2192 periodic_decimal_to_fraction must return original Fraction(p,q). Uses Python's Fraction for exact arithmetic as independent ground truth.",
      "pe:result": "20100 rationals tested, 0 failures"
    },
    "pe:verdict": {
      "prov:type": "pe:Verdict",
      "prov:label": "Verdict: PROVED",
      "prov:value": "PROVED"
    }
  },
  "activity": {
    "pe:determine-verdict": {
      "prov:type": "pe:VerdictDetermination",
      "prov:label": "Determine verdict from evidence",
      "prov:endTime": "2026-03-28"
    }
  },
  "agent": {
    "pe:proof-engine": {
      "prov:type": "prov:SoftwareAgent",
      "prov:label": "Proof Engine",
      "schema:version": "0.10.0",
      "schema:url": "https://github.com/yaniv-golan/proof-engine"
    }
  },
  "wasGeneratedBy": {
    "pe:gen-verdict": {
      "prov:entity": "pe:verdict",
      "prov:activity": "pe:determine-verdict"
    }
  },
  "wasDerivedFrom": {},
  "wasAttributedTo": {
    "pe:attr-verdict": {
      "prov:entity": "pe:verdict",
      "prov:agent": "pe:proof-engine"
    }
  },
  "used": {
    "pe:used-A1": {
      "prov:activity": "pe:determine-verdict",
      "prov:entity": "pe:evidence-A1"
    },
    "pe:used-A2": {
      "prov:activity": "pe:determine-verdict",
      "prov:entity": "pe:evidence-A2"
    },
    "pe:used-A3": {
      "prov:activity": "pe:determine-verdict",
      "prov:entity": "pe:evidence-A3"
    }
  }
}