final draft before comments from naren, added flowchart, more descriptions about PSL rules and predicates