public void cardinTestSimple2(REXClassExpressionImpl subject, REXObjectPropertyExpressionImpl role, REXClassExpressionImpl b, REXClassExpressionImpl atomic){
		for(int len:atomic.mins.keySet())
			if(len <= REXReasonerConfiguration.cardinThreshold)
			{
				REXObjectMinCardinalityImpl target = atomic.mins.get(len).get(role);
		if(target != null && !subject.superClasses.contains(target) && (!subject.subAxioms.containsKey(target) || !subject.subAxioms.get(target).tested))
		{
			{
//				if(a.toString().equals("Mushroom"))
//					System.out.println();
				ArrayList<REXClassExpressionImpl> completeList =  subject.completeLists.get(target);
				if(completeList == null)
				{
					completeList = new ArrayList<REXClassExpressionImpl>();
					subject.completeLists.put(target, completeList);
					subject.totalWeight.put(target, 0);
				}
				completeList.add(b);
		        int size = subject.totalWeight.get(target);
		        size+=b.cardin;
		        subject.totalWeight.put(target, size);
//		        for(REL2ClassExpressionImpl obj:objs.keySet())
//				{
//					completeList.add(obj);
////					cardinList.add(objs.get(obj));
//					size += objs.get(obj);
//				}
//				ArrayList<REL2ClassExpressionImpl> completeList = LHS.completeLists.get(target).keySet();
//				if(completeList == null)
//				{
//					completeList = new ArrayList<REL2ClassExpressionImpl>();
//					LHS.completeLists.put(target, completeList);
//					LHS.totalWeight.put(target, 0);
//				}
//				int size = LHS.totalWeight.get(target);
//		        completeList.add(b);
//		        size+=b.cardin;
				subject.totalWeight.put(target, size);
		        ArrayList<REXClassExpressionImpl> comb = new ArrayList<REXClassExpressionImpl>();
		        if(size >= len && testCombSimple(completeList, 0, len, size, comb))
		        	inferstrictC_sub_D(subject, target);
			}
		}
	}

}