/** * Creates a new labeling from the given extension wrt. the given theory (this only gives * a valid labeling wrt. some semantics if the semantics is admissibility-based). * @param theory some Dung theory. * @param ext an extension */ public Labeling(DungTheory theory, Extension ext){ this(); for(Argument a: ext) this.labeling.put(a, ArgumentStatus.IN); if(!theory.containsAll(ext)) throw new IllegalArgumentException("The arguments of the given extension are not all in the given theory."); Extension ext2 = new Extension(); for(Argument a: theory){ if(!ext.contains(a)) if(theory.isAttacked(a, ext)) ext2.add(a); } for(Argument a: ext2) this.labeling.put(a, ArgumentStatus.OUT); for(Argument a: theory) if(!this.labeling.containsKey(a)) this.labeling.put(a, ArgumentStatus.UNDECIDED); }
for(Graph<Argument> t: theory.getSubgraphs()){ DungTheory th = new DungTheory(t); if(th.containsAll(refArgsLower) && refArgsUpper.containsAll(th)){ LdoInterpretation i = new LdoInterpretation(th, this.ext, this.sem); if(!i.satisfies(innerFormula)) for(Graph<Argument> t: theory.getSubgraphs()){ DungTheory th = new DungTheory(t); if(th.containsAll(refArgsLower) && refArgsUpper.containsAll(th)){ LdoInterpretation i = new LdoInterpretation(th, this.ext, this.sem); if(i.satisfies(innerFormula))