Canadian Nationality Worksheet
Page 1 - Citizenship by Birth
Ben Penchas & Rohan Sampath
What is your date of birth?
Were you born in Canada?
Yes
No
Were you born on an airborne vessel?
Yes
No
Was the airborne vessel registered in Canada at time of your birth?
Yes
No
Was the airborne vessel in Canadian airspace at time of your birth?
Yes
No
Were you born on a vessel at sea?
Yes
No
Was the vessel at sea registered in Canada at time of your birth?
Yes
No
Was the vessel in Canadian waters at time of your birth?
Yes
No
On your date of birth, was either of your parents (birth or adoptive) in the employ of one of the following: (1) a foreign government in Canada, (2) an employee of a foreign government in Canada, or, (3) a foreign organization which enjoys diplomatic immunity in Canada, including the United Nations.
Yes
No
On your date of birth, was either of your parents (birth or adoptive) a citizen of Canada?
Yes
No
On your date of birth, was either of your parents (birth or adoptive) a permanent resident of Canada?
Yes
No
You are Canadian by birth
You are not Canadian by birth.
Click here to check Canadian Citizenship by Descent.
select(airborne, yes) :: holds(airborne, yes) select(airborne, yes) :: ~holds(airborne, no) select(airborne, no) :: holds(airborne, no) select(airborne, no) :: ~holds(airborne, yes) deselect(airborne, yes) :: ~holds(airborne, yes) deselect(airborne, yes) :: holds(airborne, yes) ==> ~holds(airborne, yes) select(airborne, yes) :: ~holds(airborne, yes) ==> holds(airborne, yes) deselect(airborne, no) :: ~holds(airborne, no) deselect(airborne, no) :: holds(airborne, no) ==> ~holds(airborne, no) select(seaborn, yes) :: holds(seaborn, yes) select(seaborn, yes) :: ~holds(seaborn, no) select(seaborn, no) :: holds(seaborn, no) select(seaborn, no) :: ~holds(seaborn, yes) deselect(seaborn, yes) :: ~holds(seaborn, yes) deselect(seaborn, yes) :: holds(seaborn, yes) ==> ~holds(seaborn, yes) select(seaborn, yes) :: ~holds(seaborn, yes) ==> holds(seaborn, yes) deselect(seaborn, no) :: ~holds(seaborn, no) deselect(seaborn, no) :: holds(seaborn, no) ==> ~holds(seaborn, no) select(airborne_vessel_registered, yes) :: holds(airborne_vessel_registered, yes) select(airborne_vessel_registered, yes) :: ~holds(airborne_vessel_registered, no) select(airborne_vessel_registered, no) :: holds(airborne_vessel_registered, no) select(airborne_vessel_registered, no) :: ~holds(airborne_vessel_registered, yes) deselect(airborne_vessel_registered, yes) :: ~holds(airborne_vessel_registered, yes) deselect(airborne_vessel_registered, yes) :: holds(airborne_vessel_registered, yes) ==> ~holds(airborne_vessel_registered, yes) deselect(airborne_vessel_registered, no) :: ~holds(airborne_vessel_registered, no) select(airborne_vessel_registered, yes) :: ~holds(airborne_vessel_registered, yes) ==> holds(airborne_vessel_registered, yes) select(airborne_vessel_airspace, yes) :: holds(airborne_vessel_airspace, yes) select(airborne_vessel_airspace, yes) :: ~holds(airborne_vessel_airspace, no) select(airborne_vessel_airspace, no) :: holds(airborne_vessel_airspace, no) select(airborne_vessel_airspace, no) :: ~holds(airborne_vessel_airspace, yes) deselect(airborne_vessel_airspace, yes) :: ~holds(airborne_vessel_airspace, yes) deselect(airborne_vessel_airspace, yes) :: holds(airborne_vessel_airspace, yes) ==> ~holds(airborne_vessel_airspace, yes) deselect(airborne_vessel_airspace, no) :: ~holds(airborne_vessel_airspace, no) select(airborne_vessel_airspace, yes) :: ~holds(airborne_vessel_airspace, yes) ==> holds(airborne_vessel_airspace, yes) select(seaborn_registration, yes) :: holds(seaborn_registration, yes) select(seaborn_registration, yes) :: ~holds(seaborn_registration, no) select(seaborn_registration, no) :: holds(seaborn_registration, no) select(seaborn_registration, no) :: ~holds(seaborn_registration, yes) deselect(seaborn_registration, yes) :: ~holds(seaborn_registration, yes) deselect(seaborn_registration, yes) :: holds(seaborn_registration, yes) ==> ~holds(seaborn_registration, yes) deselect(seaborn_registration, no) :: ~holds(seaborn_registration, no) select(seaborn_registration, yes) :: ~holds(seaborn_registration, yes) ==> holds(seaborn_registration, yes) select(seaborn_waters, yes) :: holds(seaborn_waters, yes) select(seaborn_waters, yes) :: ~holds(seaborn_waters, no) select(seaborn_waters, no) :: holds(seaborn_waters, no) select(seaborn_waters, no) :: ~holds(seaborn_waters, yes) deselect(seaborn_waters, yes) :: ~holds(seaborn_waters, yes) deselect(seaborn_waters, yes) :: holds(seaborn_waters, yes) ==> ~holds(seaborn_waters, yes) deselect(seaborn_waters, no) :: ~holds(seaborn_waters, no) select(seaborn_waters, yes) :: ~holds(seaborn_waters, yes) ==> holds(seaborn_waters, yes) deselect(seaborn_waters, no) :: ~holds(seaborn_waters, no) deselect(seaborn_waters, no) :: holds(seaborn_waters, no) ==> ~holds(seaborn_waters, no) select(born_in_canada, yes) :: holds(born_in_canada, yes) select(born_in_canada, yes) :: ~holds(born_in_canada, no) select(born_in_canada, no) :: holds(born_in_canada, no) select(born_in_canada, no) :: ~holds(born_in_canada, yes) deselect(born_in_canada, yes) :: ~holds(born_in_canada, yes) deselect(born_in_canada, no) :: ~holds(born_in_canada, no) select(employ_exception, yes) :: holds(employ_exception, yes) select(employ_exception, yes) :: ~holds(employ_exception, no) select(employ_exception, no) :: holds(employ_exception, no) select(employ_exception, no) :: ~holds(employ_exception, yes) deselect(employ_exception, yes) :: ~holds(employ_exception, yes) deselect(employ_exception, no) :: ~holds(employ_exception, no) select(employ_exception_cit, yes) :: holds(employ_exception_cit, yes) select(employ_exception_cit, yes) :: ~holds(employ_exception_cit, no) select(employ_exception_cit, no) :: holds(employ_exception_cit, no) select(employ_exception_cit, no) :: ~holds(employ_exception_cit, yes) deselect(employ_exception_cit, yes) :: ~holds(employ_exception_cit, yes) deselect(employ_exception_cit, no) :: ~holds(employ_exception_cit, no) select(employ_exception_pr, yes) :: holds(employ_exception_pr, yes) select(employ_exception_pr, yes) :: ~holds(employ_exception_pr, no) select(employ_exception_pr, no) :: holds(employ_exception_pr, no) select(employ_exception_pr, no) :: ~holds(employ_exception_pr, yes) deselect(employ_exception_pr, yes) :: ~holds(employ_exception_pr, yes) deselect(employ_exception_pr, no) :: ~holds(employ_exception_pr, no) canada_birth :- holds(born_in_canada, yes) canada_birth :- holds(born_in_canada, no) & holds(airborne, yes) & holds(airborne_vessel_registered, yes) canada_birth :- holds(born_in_canada, no) & holds(airborne, yes) & holds(airborne_vessel_registered, no) & holds(airborne_vessel_airspace, yes) canada_birth :- holds(born_in_canada, no) & holds(airborne, no) & holds(seaborn, yes) & holds(seaborn_registration, yes) canada_birth :- holds(born_in_canada, no) & holds(airborne, no) & holds(seaborn, yes) & holds(seaborn_registration, no) & holds(seaborn_waters, yes) style(airborne_question,display,"block") :- holds(born_in_canada, no) style(airborne_question,display,"None") :- ~holds(born_in_canada, no) style(airborne_registration,display,"block") :- holds(born_in_canada, no) & holds(airborne, yes) style(airborne_registration,display,"None") :- ~holds(airborne, yes) style(airborne_registration,display,"None") :- ~holds(born_in_canada, no) style(airborne_airspace,display,"block") :- holds(born_in_canada, no) & holds(airborne, yes) & holds(airborne_vessel_registered, no) style(airborne_airspace,display,"None") :- ~holds(airborne, yes) style(airborne_airspace,display,"None") :- ~holds(airborne_vessel_registered, no) style(airborne_airspace,display,"None") :- ~holds(born_in_canada, no) style(seaborn,display,"block") :- holds(born_in_canada, no) & holds(airborne, no) style(seaborn,display,"None") :- ~holds(born_in_canada, no) style(seaborn,display,"None") :- ~holds(airborne, no) style(seaborn_registration,display,"block") :- holds(born_in_canada, no) & holds(airborne, no) & holds(seaborn, yes) style(seaborn_registration,display,"None") :- ~holds(born_in_canada, no) style(seaborn_registration,display,"None") :- ~holds(airborne, no) style(seaborn_registration,display,"None") :- ~holds(seaborn, yes) style(seaborn_waters,display,"block") :- holds(born_in_canada, no) & holds(airborne, no) & holds(seaborn, yes) & holds(seaborn_registration, no) style(seaborn_registration,display,"None") :- ~holds(born_in_canada, no) style(seaborn_registration,display,"None") :- ~holds(airborne, no) style(seaborn_waters,display,"None") :- ~holds(seaborn, yes) style(seaborn_waters,display,"None") :- ~holds(seaborn_registration, no) style(employ_exception, display, "None") :- ~canada_birth style(employ_exception, display, "block") :- canada_birth style(employ_exception_cit, display, "None") :- ~canada_birth style(employ_exception_cit, display, "None") :- canada_birth & ~holds(employ_exception, yes) style(employ_exception_cit, display, "block") :- canada_birth & holds(employ_exception, yes) style(employ_exception_pr, display, "None") :- ~canada_birth style(employ_exception_pr, display, "None") :- canada_birth & ~holds(employ_exception, yes) style(employ_exception_pr, display, "None") :- canada_birth & holds(employ_exception, yes) & ~holds(employ_exception_cit, no) style(employ_exception_pr, display, "block") :- canada_birth & holds(employ_exception, yes) & holds(employ_exception_cit, no) no_exception :- holds(employ_exception, no) no_exception :- holds(employ_exception, yes) & holds(employ_exception_cit, yes) no_exception :- holds(employ_exception, yes) & holds(employ_exception_pr, yes) exception :- holds(employ_exception, yes) & holds(employ_exception_cit, no) & holds(employ_exception_pr, no) not_canada_birth :- holds(born_in_canada, no) & holds(seaborn, no) & holds(airborne, no) not_canada_birth :- holds(born_in_canada, no) & holds(airborne, yes) & holds(airborne_vessel_registered, no) & holds(airborne_vessel_airspace, no) not_canada_birth :- holds(born_in_canada, no) & holds(airborne, no) & holds(seaborn, yes) & holds(seaborn_registration, no) & holds(seaborn_waters, no) terminal :- canada_birth & exception terminal :- canada_birth & no_exception terminal :- not_canada_birth style(yes_canadian, display, "block") :- terminal & canada_birth & no_exception style(yes_canadian, display, "None") :- ~terminal style(yes_canadian, display, "None"):- ~canada_birth style(yes_canadian, display, "None") :- ~no_exception style(no_canadian, display, "block") :- terminal & canada_birth & exception style(no_canadian, display, "block") :- terminal & not_canada_birth style(no_canadian, display, "None") :- ~terminal style(no_canadian, display, "None") :- terminal & canada_birth & no_exception