program theory logic model