Refinement types do exhaustiveness checking!
The partial cases are assigned logical goal False, and the SMT solver needs to show they are not possible. This is one of the reasons I now believe in refinement types...
seen from Georgia
seen from China

seen from United States
seen from Canada
seen from United States
seen from Nigeria
seen from United States

seen from United States
seen from United Kingdom
seen from South Korea

seen from United States
seen from United States
seen from Germany
seen from United States
seen from United States

seen from Germany
seen from Peru
seen from United States

seen from Singapore
seen from Bulgaria
Refinement types do exhaustiveness checking!
The partial cases are assigned logical goal False, and the SMT solver needs to show they are not possible. This is one of the reasons I now believe in refinement types...