The document discusses argumentation theory and non-monotonic logics. It introduces argumentation frameworks, which represent arguments and the attacks between them. It describes different types of arguments and attacks. It also covers argumentation semantics, which evaluate arguments within a framework to determine which arguments are justified. Various semantics are examined, including complete semantics and the labelling approach. Examples using abstract frameworks and logic programming are provided to illustrate key concepts in argumentation theory.