{
  "what_this_checks": "Which days can hold a surprise test, as announced, under four readings of what the student knows on the evening before each class day. A surprise means the student cannot know, the evening before, that the test is the next day. This is a validity check of the elimination argument under each reading; it does not say which reading is correct.",
  "readings": {
    "known_every_evening": "The student knows the announcement on every evening.",
    "knows_a_test_only": "The student knows a test is coming, but not that it will be a surprise.",
    "knows_nothing": "The student has no information about the week.",
    "known_while_day_is_open": "The student knows the announcement only while knowing it leaves the day open; on an evening when it would pin the day, that knowledge is lost and only memory remains."
  },
  "results": {
    "2_days": {
      "known_every_evening": {
        "reading": "The student knows the announcement on every evening.",
        "days_on_which_a_surprise_test_is_possible": [],
        "consistent_sets_found_by_enumeration": [
          []
        ],
        "backward_iteration_from_all_days": [
          [
            "day 1",
            "day 2"
          ],
          [
            "day 1"
          ],
          []
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "day 1",
            "student_cannot_rule_out": [],
            "surprise": false
          },
          {
            "test_on": "day 2",
            "student_cannot_rule_out": [],
            "surprise": false
          }
        ],
        "last_day_ruled_out": true,
        "every_day_ruled_out": true
      },
      "knows_a_test_only": {
        "reading": "The student knows a test is coming, but not that it will be a surprise.",
        "days_on_which_a_surprise_test_is_possible": [
          "day 1"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "day 1"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "day 1",
            "day 2"
          ],
          [
            "day 1"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "day 1",
            "student_cannot_rule_out": [
              "day 1",
              "day 2"
            ],
            "surprise": true
          },
          {
            "test_on": "day 2",
            "student_cannot_rule_out": [
              "day 2"
            ],
            "surprise": false
          }
        ],
        "last_day_ruled_out": true,
        "every_day_ruled_out": false
      },
      "knows_nothing": {
        "reading": "The student has no information about the week.",
        "days_on_which_a_surprise_test_is_possible": [
          "day 1",
          "day 2"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "day 1",
            "day 2"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "day 1",
            "day 2"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "day 1",
            "student_cannot_rule_out": [
              "no test",
              "day 1",
              "day 2"
            ],
            "surprise": true
          },
          {
            "test_on": "day 2",
            "student_cannot_rule_out": [
              "no test",
              "day 2"
            ],
            "surprise": true
          }
        ],
        "last_day_ruled_out": false,
        "every_day_ruled_out": false
      },
      "known_while_day_is_open": {
        "reading": "The student knows the announcement only while knowing it leaves the day open; on an evening when it would pin the day, that knowledge is lost and only memory remains.",
        "days_on_which_a_surprise_test_is_possible": [
          "day 1",
          "day 2"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "day 1",
            "day 2"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "day 1",
            "day 2"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "day 1",
            "student_cannot_rule_out": [
              "day 1",
              "day 2"
            ],
            "surprise": true
          },
          {
            "test_on": "day 2",
            "student_cannot_rule_out": [
              "no test",
              "day 2"
            ],
            "surprise": true
          }
        ],
        "last_day_ruled_out": false,
        "every_day_ruled_out": false
      }
    },
    "3_days": {
      "known_every_evening": {
        "reading": "The student knows the announcement on every evening.",
        "days_on_which_a_surprise_test_is_possible": [],
        "consistent_sets_found_by_enumeration": [
          []
        ],
        "backward_iteration_from_all_days": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ],
          [
            "Monday",
            "Wednesday"
          ],
          [
            "Monday"
          ],
          []
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "Monday",
            "student_cannot_rule_out": [],
            "surprise": false
          },
          {
            "test_on": "Wednesday",
            "student_cannot_rule_out": [],
            "surprise": false
          },
          {
            "test_on": "Friday",
            "student_cannot_rule_out": [],
            "surprise": false
          }
        ],
        "last_day_ruled_out": true,
        "every_day_ruled_out": true
      },
      "knows_a_test_only": {
        "reading": "The student knows a test is coming, but not that it will be a surprise.",
        "days_on_which_a_surprise_test_is_possible": [
          "Monday",
          "Wednesday"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "Monday",
            "Wednesday"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ],
          [
            "Monday",
            "Wednesday"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "Monday",
            "student_cannot_rule_out": [
              "Monday",
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Wednesday",
            "student_cannot_rule_out": [
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Friday",
            "student_cannot_rule_out": [
              "Friday"
            ],
            "surprise": false
          }
        ],
        "last_day_ruled_out": true,
        "every_day_ruled_out": false
      },
      "knows_nothing": {
        "reading": "The student has no information about the week.",
        "days_on_which_a_surprise_test_is_possible": [
          "Monday",
          "Wednesday",
          "Friday"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "Monday",
            "student_cannot_rule_out": [
              "no test",
              "Monday",
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Wednesday",
            "student_cannot_rule_out": [
              "no test",
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Friday",
            "student_cannot_rule_out": [
              "no test",
              "Friday"
            ],
            "surprise": true
          }
        ],
        "last_day_ruled_out": false,
        "every_day_ruled_out": false
      },
      "known_while_day_is_open": {
        "reading": "The student knows the announcement only while knowing it leaves the day open; on an evening when it would pin the day, that knowledge is lost and only memory remains.",
        "days_on_which_a_surprise_test_is_possible": [
          "Monday",
          "Wednesday",
          "Friday"
        ],
        "consistent_sets_found_by_enumeration": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ]
        ],
        "backward_iteration_from_all_days": [
          [
            "Monday",
            "Wednesday",
            "Friday"
          ]
        ],
        "methods_agree": true,
        "evening_before_each_day": [
          {
            "test_on": "Monday",
            "student_cannot_rule_out": [
              "Monday",
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Wednesday",
            "student_cannot_rule_out": [
              "Wednesday",
              "Friday"
            ],
            "surprise": true
          },
          {
            "test_on": "Friday",
            "student_cannot_rule_out": [
              "no test",
              "Friday"
            ],
            "surprise": true
          }
        ],
        "last_day_ruled_out": false,
        "every_day_ruled_out": false
      }
    }
  },
  "random_day_plan": {
    "note": "A day drawn at random with every class day equally likely, under the reading in which the student knows a test is coming. Excluding the last day turns the next-to-last day into the last day.",
    "rows": [
      {
        "class_days": 1,
        "chance_the_test_is_not_a_surprise": "1"
      },
      {
        "class_days": 2,
        "chance_the_test_is_not_a_surprise": "1/2"
      },
      {
        "class_days": 3,
        "chance_the_test_is_not_a_surprise": "1/3"
      },
      {
        "class_days": 5,
        "chance_the_test_is_not_a_surprise": "1/5"
      }
    ]
  },
  "method": "Every subset of class days was checked for consistency with itself; the same answer was then reached a second way by starting from all days and removing days until nothing changed. Exact fractions."
}
