Using Reinforcement Learning And Declarative Programming To Learn Causal Laws In Dynamic Domains