first order dynamic logic