cashpoint_model :- %LEVEL 0 ard_att_add('Cashpoint'), ard_property_add(['Cashpoint']), %LEVEL 1 ard_att_add('MenuOption'), ard_att_add('Data'), ard_att_add('DoesCashpointHaveEnoughCash'), ard_att_add('NumberOfFailedAttempts'), ard_att_add('CashpointActivity'), ard_finalize(['Cashpoint'],['MenuOption','Data','DoesCashpointHaveEnoughCash','NumberOfFailedAttempts','CashpointActivity']), %LEVEL 2 ard_split(['MenuOption','Data','DoesCashpointHaveEnoughCash','NumberOfFailedAttempts','CashpointActivity'], [['MenuOption'],['Data'],['DoesCashpointHaveEnoughCash'],['NumberOfFailedAttempts'],['CashpointActivity']], [ [['MenuOption'],['CashpointActivity']], [['Data'],['CashpointActivity']], [['DoesCashpointHaveEnoughCash'],['CashpointActivity']], [['NumberOfFailedAttempts'],['CashpointActivity']] ]), %LEVEL 3 ard_att_add('DesiredAmount'), ard_att_add('EnteredPIN'), ard_att_add('FreeFunds'), ard_att_add('PINInDatabase'), ard_att_add(authentication), ard_att_add(clientHasFreeFunds), ard_finalize(['Data'],['DesiredAmount','EnteredPIN','FreeFunds','PINInDatabase',authentication,clientHasFreeFunds]), ard_split(['DesiredAmount','EnteredPIN','FreeFunds','PINInDatabase',authentication,clientHasFreeFunds], [['DesiredAmount','FreeFunds','EnteredPIN','PINInDatabase'],[clientHasFreeFunds,authentication]], [ [['DesiredAmount','FreeFunds','EnteredPIN','PINInDatabase'],[clientHasFreeFunds,authentication]], [[clientHasFreeFunds,authentication],['CashpointActivity']] ]), ard_att_add(cashpointActivity), ard_finalize(['CashpointActivity'],[cashpointActivity]), ard_split([clientHasFreeFunds,authentication], [[clientHasFreeFunds],[authentication]], [ [['DesiredAmount','FreeFunds','EnteredPIN','PINInDatabase'],[clientHasFreeFunds]], [['DesiredAmount','FreeFunds','EnteredPIN','PINInDatabase'],[authentication]], [[authentication],[cashpointActivity]], [[clientHasFreeFunds],[cashpointActivity]] ]), ard_split(['DesiredAmount','FreeFunds','EnteredPIN','PINInDatabase'], [['DesiredAmount','FreeFunds'],['EnteredPIN','PINInDatabase']], [ [['DesiredAmount','FreeFunds'],[clientHasFreeFunds]], [['EnteredPIN','PINInDatabase'],[authentication]] ]), ard_split(['EnteredPIN','PINInDatabase'], [['EnteredPIN'],['PINInDatabase']], [ [['EnteredPIN'],[authentication]], [['PINInDatabase'],[authentication]] ]), ard_split(['DesiredAmount','FreeFunds'], [['DesiredAmount'],['FreeFunds']], [ [['DesiredAmount'],[clientHasFreeFunds]], [['FreeFunds'],[clientHasFreeFunds]] ]), ard_att_add('NumberOfBills'), ard_att_add('EnoughCashInCashpoint'), ard_finalize(['DoesCashpointHaveEnoughCash'],['NumberOfBills','EnoughCashInCashpoint']), ard_split(['NumberOfBills','EnoughCashInCashpoint'], [['NumberOfBills'],['EnoughCashInCashpoint']], [ [['NumberOfBills'],['EnoughCashInCashpoint']], [['EnoughCashInCashpoint'],['cashpointActivity']] ]), ard_att_add(numberOfBills), ard_att_add(enoughCashInCashpoint), ard_finalize(['NumberOfBills'],[numberOfBills]), ard_finalize(['EnoughCashInCashpoint'],[enoughCashInCashpoint]), ard_att_add(menuOption), ard_att_add(desiredAmount), ard_att_add(enteredPIN), ard_att_add(freeFunds), ard_att_add(pINInDatabase), ard_att_add(numberOfFailedAttempts), ard_finalize(['MenuOption'],[menuOption]), ard_finalize(['DesiredAmount'],[desiredAmount]), ard_finalize(['EnteredPIN'],[enteredPIN]), ard_finalize(['FreeFunds'],[freeFunds]), ard_finalize(['PINInDatabase'],[pINInDatabase]), ard_finalize(['NumberOfFailedAttempts'],[numberOfFailedAttempts]), ard_depend_add(['desiredAmount'],['enoughCashInCashpoint']). :- cashpoint_model.