Consider the following three programs:
where i, k, l are low variables and a, b, c, d, h, n are high variables. Assume db is a database with two columns (shown as array, where the index represents the row), lookup and isVal are two functions that return high values and are typed similar to high expressions, i.e.,
1. Define a command syntax and small-step semantics for if-then (without the else) and extend Agat's type system with a rule for if-then.
2. Try to type programs a), b) and c) in Agat's original type system and show both the transformed program and the slice. If you cannot type the program, then give a counter-example that shows that the program is insecure or argue why the program is secure.