listing the checkdates py program extracts collection of birth dates from the user and determines if each individual is at least years of age from date import date def main()date before which person must have been born to be or older bornbefore date( extract birth dates from the user and determine if or older date promptandextractdate(while date is not none if date <bornbefore print"is at least years of age"date date promptandextractdate(prompts for and extracts the gregorian date components returns date object or none when the user has finished entering dates def promptandextractdate()print"enter birth date month intinput("month ( to quit)"if month = return none else day intinput("day"year intinput("year"return datemonthdayyear call the main routine main(preconditions and postconditions in defining the operationswe must include specification of required inputs and the resulting outputif any in additionwe must specify the preconditions and postconditions for each operation precondition indicates the condition or state of the adt instance and inputs before the operation can be performed postcondition indicates the result or ending state of the adt instance after the operation is performed the precondition is assumed to be true while the postcondition is guarantee as long as the preconditions are met attempting to perform an operation in which the precondition is not satisfied should be flagged as an error consider the use of the pop(imethod for removing value from list when this method is calledthe precondition states the supplied index must be within the legal range upon successful completion of the operationthe postcondition guarantees the item has been removed from the list if an invalid indexone that is out of the legal rangeis passed to the pop(methodan exception is raised all operations have at least one preconditionwhich is that the adt instance has to have been previously initialized in an object-oriented languagethis precondition is automatically verified since an object must be created and initialized