qualiative eliminator can notice v and I across a resistor are locked and cross at the same time. looks like qualitative parameters get ignored in apply-parameters. in q-change. Error: Not sure if we should return multipl values or just Q? compute-sum gets errors because not all the qualiative values known. -------------------------- initial values for circuit can only be created if model exists. Ditto for parameters. expt-rcn fails. Everything is contradictory. No need for all the member tests on equivalent classes as variables can carry their own polarity with them in the var struct. Should model-bindings be wrapped back into variables. Is situation-modes every used? Why is the initial state in expt1 not one of the oscillatory ones. voltage/distance/... not all the variables are =. How does KVL work there then. Multiple kvls? When a constraint gets added, check whether enough values are known to run it. Right now its assumed all constraints are added before all values. mode is not yet used as a separate variable a la ATMS. We need to redesign methat part. justification should all look like ( . ) informant looks like ( =< should be M= M> M< supply a function such that when true, stop expanding. every create-situation have a parent which then gets installed. on a mode change which has mode positoin = 1, is that exact numerical value even asserted? consisently true-value-in-situation. Add all. Merge to one place. When mode is unknown this just fails at initial state. Should do all trhee. Monte-Carlo analysis of the envisoinment. Change level of abstractions. OK have internal variables in a model. Inheritance. FFIP fault propagation tool. explain a datum interface to zgraph. Will not plunk modes yet. Add back numbers + symbolic values combining. Show semi quantitative. Write a plotter for a variable through the tree. Could compute probabilities if we get numbers to work in time. It looks like lots of deriv's get created which have no related variable. Why for example is the values array most empty even though collect-state has no nils? Want to mix qualitative and quantitative. Some of my design changes belie that. For example, why can't there be one KCL. If modes are not assigned, plunk-solve fails. Do something smarter. For example, expt-v2 fails if initial mode is not there. Add atms, so can show justifications. Say computation. Add probability. Does deriv of deriv add increment to degree? Don't have to say q= w (deriv position 1) equation on :moded model apply to all modes. Instead of repeating. Flush ambiguous situations from envisionment after the ambiguous node is processed. lt-limit only looks at first value. situation-id is not used anymore. Flush it. If I leave out initial distance 0 on expt-v2, there are no initial transitions. All callers to find-an-unknown should use time. cell-time get rid of. cell-values fix. All references to situation-cell -> store/retrieve cell. Every call to make-deriv -> create-deriv. DONE: Expand-situation must call with a new-situation, not new-time. DONE: constraint-active-p now takes situation. DONE: find-situation takes situation. select-next-mode takes situation. callers of collect-state situation. collect-state now duplicates, get rid of it. DONE: all calls to quantity-at-time -> quantity-in-siuation plunk-solve called with a situation. run-constraints takes time not situation, only one arg then. Do we need cell's at all in situation-array? All occurances of deriv-times removed. In create-situation time should not be supplied and computed on creating. expt-rcn. summarize-envisionment (state-vars). Only show those changes which have been printed. See whether adding a 2nd derivative will reduce the ambiguities in expt-v2 Always have supplied type in call to clobber. With each datum store its particular type. On no information at all, plunk-solve should generate a large set of possibilties. It doesn't. Numerical value should imply qualitative one. 1-> Q+, etc. Also Q0 = 0. Adding a transition to old-sitaution which was ambiguous requires checking for continuity. continuous-change-p also consistent-with-derivative in the case of plunking changes. Qualitative-value situation. Add battery charge limit. Do spanning tree for each discipline alone. What if multiple roots? Extend to propagate numbers. It might make intuitions much more clear. 1. have justifications with antecedents in preparation for hooking up an ATMS. Standing still start is ambiguous, we should handle it though. An instant with no outputs is impossible. internal-terminals -> internal-nodes everywhre. Can I have both equations and a body. Will that work? No it won't. KCL does not create enough equations for that. Should external-terminals have :type. internal-terminals is probably obsolete. lts should be obsolete. Put in value. Is :internal-terminals meaningfull anymore. new-id is also used for times, which is absurd. (>> mode D foo) returns the mode of D. Conditions are simply another state variable. We could make conditions in models assumptions. oneof over the set. Start to put an ATMS underneath. Should we add a rule that an instant change cannot change a +/- to 0 ever? Get rid of the situation/time distinction. Always carry around only the situation. The situation has the array of values. Don't bother push waiting on a constraint if the condition does not hold. Add parameters to models. If energy is being dissipated, the oscillation is declining. Should a transition happen without all the prior variables being known. Should we construct mutliple interpretations? If KCL is called after values are added it fails to queue. This is harder than it seems because this has to be added to all times. Is :internal-terminals obsolete. model-library needs a separate id space because the system might not be defined yet and it has to survive across systems. In meta-model pair list is too simplistic. If terminals are not provided in a create-model call, do not error, but create unbounds which later get resolved, by equality or unity constraints. Should I convert to the ATMS constraint language. Multiple times in variables. variables need explicit types like voltage/force. Order of :equations, :variables ... in model file matters. It shouldn't. :parent of variables is determined by the first model that creates it. Not right. the namespaces of terminals, variables and components should be deconflicted. Dynamically compute length of time array in variable slots. However, with factoring this all needs to change. Clobber only checks for eq values, what about subsumption, overlap? In propagation, if multiple antecedents have new values, combinations are done twice. Change name from :env to :qrm. Maintain justifications accurately. Don't use list structures anywhere for temporary data like transition information. Need a general approach to x=y x=f(y). dx/dt=dy/dt. KVL not in yet.