[roles] Admin AdmissionsOfficer AssistantProf AssociateProf AsstForStudentAffairs Dean DeanOfAdmissions DeptChair Employee FacilitiesCommittee FacilitiesDirector Faculty FullTimeEmployee Grad GradAdmissionsCommittee GradCommittee GradStudOfficer Grader HonorsPgmDirector HonorsStudent Lecturer President Professor Provost QualExamCommittee QualExamCommitteeHead RA Staff Student TA TenuredFac Undergrad UndergradPermittedGradClass target [admins] DeptChair Faculty GradAdmissionsCommittee HonorsPgmDirector Dean DeanOfAdmissions Provost AdmissionsOfficer President Admin [relations] Student < Undergrad Undergrad < Grad Employee < Staff Staff < AdmissionsOfficer AdmissionsOfficer < DeanOfAdmissions DeanOfAdmissions < Provost Employee < Faculty Faculty < Lecturer Faculty < AssistantProf AssistantProf < AssociateProf AssociateProf < Professor Professor < DeptChair DeptChair < Dean Dean < Provost Provost < President TenuredFac < AssociateProf TenuredFac < Professor FacilitiesCommittee < FacilitiesDirector QualExamCommittee < QualExamCommitteeHead [can_assigns] can_assign(Admin, HonorsStudent and Undergrad, target) can_assign(President, new , Professor ) can_assign(President, new , Staff ) can_assign(President, new , DeanOfAdmissions ) can_assign(President, new , Lecturer ) can_assign(President, new , AssistantProf ) can_assign(President, new , AssociateProf ) can_assign(President, true , Professor ) can_assign(President, true , Staff ) can_assign(President, true , DeanOfAdmissions ) can_assign(President, true , Lecturer ) can_assign(President, true , AssistantProf ) can_assign(President, true , AssociateProf ) can_assign(AdmissionsOfficer, not Grad , Undergrad ) can_assign(DeptChair, Grad , TA ) can_assign(DeptChair, Grad , GradStudOfficer ) can_assign(DeptChair, GradStudOfficer , GradCommittee ) can_assign(DeptChair, Grad , Grader ) can_assign(DeptChair, Undergrad , Grader ) can_assign(Faculty, Student , RA ) can_assign(Faculty, Grad , RA ) can_assign(Faculty, Undergrad , RA ) can_assign(GradAdmissionsCommittee, not Undergrad , Grad ) can_assign(HonorsPgmDirector, Grad , HonorsStudent ) can_assign(HonorsPgmDirector, Undergrad , HonorsStudent ) can_assign(Faculty, Grad , UndergradPermittedGradClass ) can_assign(Faculty, Undergrad , UndergradPermittedGradClass ) can_assign(Dean, AdmissionsOfficer , AsstForStudentAffairs ) can_assign(Dean, President , AsstForStudentAffairs ) can_assign(Dean, Provost , AsstForStudentAffairs ) can_assign(Dean, DeanOfAdmissions , AsstForStudentAffairs ) can_assign(Dean, Staff , AsstForStudentAffairs ) can_assign(DeanOfAdmissions, President and not GradAdmissionsCommittee , AdmissionsOfficer ) can_assign(DeanOfAdmissions, Provost and not GradAdmissionsCommittee , AdmissionsOfficer ) can_assign(DeanOfAdmissions, DeanOfAdmissions and not GradAdmissionsCommittee , AdmissionsOfficer ) can_assign(DeanOfAdmissions, Staff and not GradAdmissionsCommittee , AdmissionsOfficer ) can_assign(DeptChair, AssistantProf and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, AssociateProf and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, Lecturer and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, Dean and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, Professor and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, DeptChair and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, Faculty and not AdmissionsOfficer and not DeanOfAdmissions and not President and not Provost , GradAdmissionsCommittee ) can_assign(DeptChair, AssistantProf , GradCommittee ) can_assign(DeptChair, AssociateProf , GradCommittee ) can_assign(DeptChair, President , GradCommittee ) can_assign(DeptChair, Lecturer , GradCommittee ) can_assign(DeptChair, Dean , GradCommittee ) can_assign(DeptChair, Provost , GradCommittee ) can_assign(DeptChair, Professor , GradCommittee ) can_assign(DeptChair, DeptChair , GradCommittee ) can_assign(DeptChair, Faculty , GradCommittee ) can_assign(DeptChair, AssistantProf , HonorsPgmDirector ) can_assign(DeptChair, AssociateProf , HonorsPgmDirector ) can_assign(DeptChair, President , HonorsPgmDirector ) can_assign(DeptChair, Lecturer , HonorsPgmDirector ) can_assign(DeptChair, Dean , HonorsPgmDirector ) can_assign(DeptChair, Provost , HonorsPgmDirector ) can_assign(DeptChair, Professor , HonorsPgmDirector ) can_assign(DeptChair, DeptChair , HonorsPgmDirector ) can_assign(DeptChair, Faculty , HonorsPgmDirector ) can_assign(DeptChair, AdmissionsOfficer , FacilitiesCommittee ) can_assign(DeptChair, AssistantProf , FacilitiesCommittee ) can_assign(DeptChair, AssociateProf , FacilitiesCommittee ) can_assign(DeptChair, Dean , FacilitiesCommittee ) can_assign(DeptChair, DeanOfAdmissions , FacilitiesCommittee ) can_assign(DeptChair, DeptChair , FacilitiesCommittee ) can_assign(DeptChair, Employee , FacilitiesCommittee ) can_assign(DeptChair, Faculty , FacilitiesCommittee ) can_assign(DeptChair, President , FacilitiesCommittee ) can_assign(DeptChair, Lecturer , FacilitiesCommittee ) can_assign(DeptChair, Provost , FacilitiesCommittee ) can_assign(DeptChair, Professor , FacilitiesCommittee ) can_assign(DeptChair, Staff , FacilitiesCommittee ) can_assign(DeptChair, AssistantProf , FacilitiesDirector ) can_assign(DeptChair, AssociateProf , FacilitiesDirector ) can_assign(DeptChair, President , FacilitiesDirector ) can_assign(DeptChair, Lecturer , FacilitiesDirector ) can_assign(DeptChair, Dean , FacilitiesDirector ) can_assign(DeptChair, Provost , FacilitiesDirector ) can_assign(DeptChair, Professor , FacilitiesDirector ) can_assign(DeptChair, DeptChair , FacilitiesDirector ) can_assign(DeptChair, Faculty , FacilitiesDirector ) can_assign(DeptChair, AssistantProf , QualExamCommittee ) can_assign(DeptChair, AssociateProf , QualExamCommittee ) can_assign(DeptChair, President , QualExamCommittee ) can_assign(DeptChair, Lecturer , QualExamCommittee ) can_assign(DeptChair, Dean , QualExamCommittee ) can_assign(DeptChair, Provost , QualExamCommittee ) can_assign(DeptChair, Professor , QualExamCommittee ) can_assign(DeptChair, DeptChair , QualExamCommittee ) can_assign(DeptChair, Faculty , QualExamCommittee ) can_assign(DeptChair, GradCommittee , QualExamCommitteeHead ) can_assign(President, AdmissionsOfficer , FullTimeEmployee ) can_assign(President, AssistantProf , FullTimeEmployee ) can_assign(President, AssociateProf , FullTimeEmployee ) can_assign(President, Dean , FullTimeEmployee ) can_assign(President, DeanOfAdmissions , FullTimeEmployee ) can_assign(President, DeptChair , FullTimeEmployee ) can_assign(President, Employee , FullTimeEmployee ) can_assign(President, Faculty , FullTimeEmployee ) can_assign(President, President , FullTimeEmployee ) can_assign(President, Lecturer , FullTimeEmployee ) can_assign(President, Provost , FullTimeEmployee ) can_assign(President, Professor , FullTimeEmployee ) can_assign(President, Staff , FullTimeEmployee ) can_assign(President, Professor and not Dean and not DeptChair and not President , Provost ) can_assign(Provost, Professor and not DeptChair and not President and not Provost , Dean ) can_assign(Dean, Professor and not Dean and not President and not Provost , DeptChair ) [can_revokes] can_revoke(Dean, Undergrad) can_revoke(DeptChair, TA) can_revoke(DeptChair, GradStudOfficer) can_revoke(DeptChair, GradCommittee) can_revoke(DeptChair, Grader) can_revoke(Dean, Grad) can_revoke(HonorsPgmDirector, HonorsStudent) can_revoke(Faculty, UndergradPermittedGradClass) can_revoke(Dean, AsstForStudentAffairs) can_revoke(DeanOfAdmissions, AdmissionsOfficer) can_revoke(DeptChair, GradAdmissionsCommittee) can_revoke(DeptChair, GradCommittee) can_revoke(DeptChair, HonorsPgmDirector) can_revoke(DeptChair, FacilitiesCommittee) can_revoke(DeptChair, FacilitiesDirector) can_revoke(DeptChair, QualExamCommittee) can_revoke(DeptChair, QualExamCommitteeHead) can_revoke(President, Staff) can_revoke(President, DeanOfAdmissions) can_revoke(President, Lecturer) can_revoke(President, AssistantProf) can_revoke(President, AssociateProf) can_revoke(President, Professor) can_revoke(President, FullTimeEmployee) can_revoke(President, Provost) can_revoke(Provost, Dean) can_revoke(Dean, DeptChair) [goal] target [present] 1 DeptChair 1 Faculty 1 GradAdmissionsCommittee 1 HonorsPgmDirector 1 Dean 1 DeanOfAdmissions 1 Provost 1 AdmissionsOfficer 1 President 1 Admin [query] n_target>0 test whether a user can be explicitly both in HonorsStudent and Undergrad Role admin is inserted to add the query needed for reachability. It is an administrative role always in the system (present and notRevocable) Rule added for reachability: can_assign(Admin, HonorsStudent and Undergrad, target)