actually we do need the formal to actual thing, so adding it back. also we take care of the case where the formal could already be in our list by creating a question mark variable
Added initialization statements to the assertive code
only check for recursive calls if we are in a procedure