% Entity types program('SSI'). law('PRWORA'). law('P.L._105-306'). law('Noncitizen_Benefit_Clarification_and_Other_Technical_Amendments_Act_of_1998'). law('INA'). law('NACARA'). law('HRIFA'). law('CAA66'). law('Refugee_Education_Assistance_Act_of_1980'). alien_category('Qualified_Alien'). alien_category('Nonqualified_Alien'). alien_category('LAPR'). ethnicity('American_Indian'). ethnicity('Amerasian_Immigrant'). organization('Federally_Recognized_Indian_Tribe'). organization('U.S._Armed_Forces'). status('PRUCOL'). status('Refugee'). status('Asylee'). status('Deportation_Withheld'). status('Removal_Withheld'). status('Conditional_Entrant'). status('Cuban_Haitian_Entrant'). status('Parolee'). status('Battered_Alien'). status('Compact_Of_Free_Association_States_Citizen'). condition('Blind'). condition('Disabled'). time_period('7_Years'). % SSI eligibility requirements for aliens eligibility_requirement('SSI', 'Qualified_Alien'). eligibility_requirement('SSI', 'Exception_Condition'). % PRWORA applicability applies_to('PRWORA', 'SSI', 'Alien_Applicants'). applies_to('INA', 'Refugee', 'Section_207'). applies_to('INA', 'Asylee', 'Section_208'). applies_to('INA', 'Deportation_Withheld', 'Section_243_h'). applies_to('INA', 'Removal_Withheld', 'Section_241_b_3'). applies_to('INA', 'Conditional_Entrant', 'Section_203_a_7'). applies_to('INA', 'Parolee', 'Section_212_d_5'). % General SSI eligibility rule eligible_for_ssi(Person) :- (us_citizen(Person); us_national(Person)); american_indian_exception(Person); grandfathered_ssi_recipient(Person); qualified_alien_eligible(Person). % American Indian exception american_indian_exception(Person) :- (ethnicity(Person, 'American_Indian'), born_in_canada(Person), indian_blood_percentage(Person, Percentage), Percentage >= 50); member(Person, 'Federally_Recognized_Indian_Tribe'). % Grandfathered SSI recipient grandfathered_ssi_recipient(Person) :- receiving_ssi_before(Person, date(1979, 1, 1)); (not_qualified_alien(Person), receiving_ssi_on(Person, date(1996, 8, 22)), prucol_status_continues(Person)). % Qualified Alien eligibility qualified_alien_eligible(Person) :- qualified_alien_status(Person), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); has_40_qualifying_quarters(Person); military_connection(Person); time_limited_eligibility(Person)). % Blind or disabled in 1996 blind_or_disabled_1996(Person) :- lawfully_residing(Person, 'U.S.', date(1996, 8, 22)), (condition(Person, 'Blind'); condition(Person, 'Disabled')). % Lawfully residing and receiving SSI in 1996 lawfully_residing_and_receiving_ssi_1996(Person) :- lawfully_residing(Person, 'U.S.', date(1996, 8, 22)), receiving_ssi_on(Person, date(1996, 8, 22)). % Military connection military_connection(Person) :- (veteran(Person, 'U.S._Armed_Forces'); active_duty(Person, 'U.S._Armed_Forces'); spouse_of_veteran_or_active_duty(Person); dependent_child_of_veteran_or_active_duty(Person)). % Time-limited eligibility (7-year rule) time_limited_eligibility(Person) :- member(Status, ['Refugee', 'Asylee', 'Deportation_Withheld', 'Removal_Withheld', 'Cuban_Haitian_Entrant', 'Amerasian_Immigrant']), status_granted_within_7_years(Person, Status). % Specific alien category eligibility rules refugee_eligible(Person) :- status(Person, 'Refugee'), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person); status_granted_within_7_years(Person, 'Refugee')). asylee_eligible(Person) :- status(Person, 'Asylee'), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person); status_granted_within_7_years(Person, 'Asylee')). deportation_removal_withheld_eligible(Person) :- (status(Person, 'Deportation_Withheld'); status(Person, 'Removal_Withheld')), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person); status_granted_within_7_years(Person, 'Deportation_Withheld'); status_granted_within_7_years(Person, 'Removal_Withheld')). conditional_entrant_eligible(Person) :- status(Person, 'Conditional_Entrant'), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person)). cuban_haitian_entrant_eligible(Person) :- status(Person, 'Cuban_Haitian_Entrant'), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person); status_granted_within_7_years(Person, 'Cuban_Haitian_Entrant')). parolee_eligible(Person) :- status(Person, 'Parolee'), parolee_for_at_least_1_year(Person), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person); status_granted_within_7_years(Person, 'Cuban_Haitian_Entrant')). battered_alien_eligible(Person) :- status(Person, 'Battered_Alien'), (blind_or_disabled_1996(Person); lawfully_residing_and_receiving_ssi_1996(Person); military_connection(Person)). % Compact of Free Association States citizens are ineligible compact_of_free_association_states_citizen_eligible(Person) :- status(Person, 'Compact_Of_Free_Association_States_Citizen'), fail. % Loss of eligibility loses_eligibility(Person, Date) :- qualified_alien_status(Person), (loses_7_year_eligibility(Person, Date); loses_military_connection(Person, Date); loses_40_quarters(Person, Date)). % Helper predicates (to be defined elsewhere) us_citizen(_). us_national(_). ethnicity(_, _). born_in_canada(_). indian_blood_percentage(_, _). member(_, _). receiving_ssi_before(_, _). not_qualified_alien(_). receiving_ssi_on(_, _). prucol_status_continues(_). qualified_alien_status(_). qualified_alien_status(_, _). lawfully_residing(_, _, _). blind(_). disabled(_). has_40_qualifying_quarters(_). veteran(_, _). active_duty(_, _). spouse_of_veteran_or_active_duty(_). dependent_child_of_veteran_or_active_duty(_). status_granted_within_7_years(_, _). nationality(_, _). adjusted_status_under(_, _). loses_7_year_eligibility(_, _). loses_military_connection(_, _). loses_40_quarters(_, _). parolee_for_at_least_1_year(_). condition(_, _). status(_, _).